For this reason there's been a trend back towards forward rendering, with some modern twists to efficiently handle many dynamic lights like deferred does. UE4 for example:
https://docs.unrealengine.com/latest/INT/Engine/Performance/... | https://youtu.be/6kfMVxNSowM?t=3046
That's a significant limitation for a modern technique.
Here's the full algorithm for anyone curious:
> The Forward Renderer works by culling lights and Reflection Captures to a frustum-space grid. Each pixel in the forward pass then iterates over the lights and Reflection Captures affecting it, sharing the material with them. Dynamic Shadows for Stationary Lights are computed beforehand and packed into channels of a screen-space shadow mask, leveraging the existing limit of 4 overlapping Stationary Lights.
> Forward renderer now supports shadowing from movable lights and light functions.
> Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed.
You also need to keep an untraditionally high frame rate without dropping frames (90 FPS on the desktop headsets), which also has significant performance/app architecture implications.
It's actually not that radically different in terms of graphics; a game programmer should feel right at home.
The harder part is the UX implications when you realize "controlling the camera" is no longer in your hands. That might require fundamentally rethinking how your game and/or app functions.