$ node --expose-gc server.js
in another terminal:
$ curl localhost:5001
output in first terminal shows that req.foo is still sitting in the heap:
{ before: 
   { nodes: 27143,
     time: Wed Mar 05 2014 13:59:20 GMT-0800 (PST),
     size_bytes: 4595904,
     size: '4.38 mb' },
  after: 
   { nodes: 25238,
     time: Wed Mar 05 2014 13:59:25 GMT-0800 (PST),
     size_bytes: 84183520,
     size: '80.28 mb' },
  change: 
   { size_bytes: 79587616,
     size: '75.9 mb',
     freed_nodes: 3430,
     allocated_nodes: 1525,
     details: 
      [ [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        [Object] ] } }
I simplified the server code a bit:
https://gist.github.com/defunctzombie/9380299
To help rule out more codepaths