If you could add something like GetCameraPositionX() and GetCameraPositionY(), and GetCameraZoomLevel(), that would be enough (I think) to be able to add pseudo-depth.
If you recall in games like Sonic the Hedgehog, Sonic runs around on the grass in the foreground and as he moves it scrolls along with him. However, there's also a background layer of hills and mountains in the distance, and this background layer moves more slowly than the foreground - giving you the sense that the level has some depth.
With these additional functions, it would be possible to create an engine that lets you place asteroids in the "background", which move accordingly when you zoom in/out and move the view field around. In addition you could also place asteroids at different "depths", meaning not just a foreground and background layer like in Sonic, but actually an arbitrary number of background layers, all of which move according to their depth.
To get around the issue of these asteroids being selectable and traversable, one could simply add them in function LevelLogic() instead of in LevelSetup. That way the asteroids are visible but not traversable/selectable.
So that would be a totally awesome and unique effect. I wouldn't get a chance to work on this for ages yet though so no rush on these - Gravity is going to keep me busy for quite some time, I think...