How to deal with a scene that has both very large and very small objects
Why not drive the scale of the objects as an inverse function to the distance of the camera? That way the camera doesn't have to move as far while the objects take up less room.

You can add drivers to the objects that you want scaled. They should take the local location of the camera and divide it into 1. Resulting in a smaller value for the scene.
In fact if there are many objects then i would parent them to an empty and simply drive it's scale.

Here are the drivers with the function attached:



Remember to copy this driver to each channel for uniform scaling.

finally remember that any materials that exist in world space will not scale with the UVs of the objects.