Not sure how have the exact same "checkout" multiple times is useful (most of my jobs modify the workspace so I need to isolate them from each other -> separate workspace == separate "checkouts").
OTOH, I was also interested to save on disk space when it comes to large git repos cloned multiple times. Note that I mean "clone" not "checkout".
So, an easy/safe enough solution to reduce waste of duplicate clones:
1) have 1 proper clone of the big repo on each slave - just by create a dumb "mirror" job with no build steps, just to keep the clone up to date
My results using this is quite dramatic, the repo (.git) sizes under the worker jobs are just a few Mb, even the actually repo is 1.5G+ in my case.
Also the "clone" for each worker job will just take a fraction of time.
Now I'd like Jenkins (plugin?) to provide a setup like this out-of-the-box, eliminating the manual fiddling (I needed to add site-wide variables overridden for each slave, etc..). Anyway it's good enough for me now.
Of course the actual "checkout" sizes are the same, but I see no safe&straightforward way around that, that's just the nature of building/testing code.
So, not sure if this helps but good luck anyway.
Greg