This is not really an issue, but if one overwrites $_SERVER with an empty array, PHPUnit registers an exception from PHP_Timer::timeSinceStartOfRequest() after running all tests. Thus, PHPUnit is dependent of this global variable (via PHP_Timer), which might not be the best design.
By default, PHPUnit actually backs up and restores $GLOBALS for each test. Is it possible that you are using the --no-globals-backup switch which prevents PHPUnit from restoring $_SERVER?
As a side note, I don't think this is necessarily bad design. I suspect that you would break almost any PHP application if you destroyed all the superglobals. More to the point, what is typically considered bad practice in PHP is modifying or destroying superglobals.
Fixes phpunit-selenium issue #72: ReflectionException when running se…
This also applies to magical methods which have no accessible reflection