By definition in proc means in process, using a web garden means multiple processes so in proc would be in that specific process.
An improvement could be some formula to keep the same people in the same wp, but I would agree generally with the why do this.
Looking at the code for why you need so much in your session variables is probably a good answer, but of course some apps need different things than others - just saying put less in session vars isn't always an answer.
Depending on your budget you may want to investigate why you need a web garden - the advantage of a garden is if you have a single / apartment threaded task which blocks other requests - by placing the requests in seperate gardens you generally get around threading issues - Well designed code shouldn't have these kind of issues though. The performance SHOULD be better in one proc instead f the garden.
There's also an exception on 32 bit of ram but with 64 bit w3wp that is less likely a justification for web gardens.