I believe that unless you have a large amount of changing data on the objects (in which case you'd likely have a bandwidth problem), the RAM needed for the per-client snapshots is not going to become a serious problem for scalability at first.
Rather, the problem is the CPU processing needed to determine for each client, what data is relevant and what needs to be sent. Assuming that it's typically the other clients' player character state that needs to be examined for changes and to be sent to all interested parties, this becomes an O(n^2) problem for n clients.
As long as the client count is that of typical FPS multiplayer games (something like 32-64 max), even that isn't likely going to be a serious problem. But for scaling beyond that it'd be ideal to be able to just blindly send the same data to several clients, without doing any per-client rewinds or inspection of "what this client needs to know".