The exact reason is fairly simple but not intuitive.
In load_user() or authenticate_user(), methods in the User class, there was some old cade that performed an array_merge() on $_SESSION. In PHP:
PHP Code:
$newArr = array(x, y, z ....);
$_SESSION = array_merge($_SESSION, $newArr);
Intuitively, since $_SESSION is just an array, albeit an important and unique one, the above code should not produce errors. However, in certain versions of PHP 4 and 5, one can cause an Apache segfault by performing this operation.
The technical reason (and keep in mind that this is 3rd-hand information) is that the memory space occupied by $_SESSIONs is protected, The way array_merge() operates is to take the passed arrays, merge them in some memory space, then assign that new array to the value you want. Doing this with $_SESSION corrupts the memory space, and in some cases, fails catostrophically, killing the apache instance serving that page. This extends to all Superglobal class arrays, such as $_SERVER, $_POST, etc.
I believe Jacob, our CTO, can explain it much more precisely. But in a nutshell, don't do it!