This has been reported as bug NIM063795 (The Dissolve tool creates empty Shape_Length and Shape_Area fields in an in-memory output layer during background geoprocessing). This happens when the background processing is enabled, so the workaround would be to disable background processing in the Geoprocessing options dialog.
Thanks a million!
Instead of using the in_memory workspace, could you use a scratch workspace to store the intermediate datasets?