Ok, here is the answer from Pavel Sher (a JB guy) :
The main reason why server side
checkout exists - is to simplify
administration overhead.
With server side checkout you need to
install VCS client software on the
server only (applicable to Perforce,
Mercurial, TFS, Clearcase, VSS).
Network access to VCS repository can
also be opened to the server only. So
if you want to control who has access
to your sources repositories it is
probably better to use server side
checkout.
As a side effect in some cases server
side checkout can lower load produced
on VCS repositories especially if
clean checkout is performed often.
This is because clean patches are
cached by server. However this is
environment specific, probably in some
cases agent side checkout will work
better.
Exclude rules also are better
processed with server side checkout
because usually agent side checkout is
just an update and with most VCSes
there is no way to exclude some
directories during update operation.
From the other hand because agent side
checkout is just an update or checkout
it creates necessary administration
directories (like .svn, CVS), so it
allows you to communicate with
repository from the build: commit
changes and so on. With server side
checkout such directories won't be
created.