I'm working on a little networked game in which the server breaks its internal model of the world up into geographical segments. Each segment contains items, players, scenery, etc. within that part of the world. When a client logs in, they are sent only the local segments relative to their location, and if they wander around the map, they are sent additional segments as and when required. Once a segment has been received, the player does not receive it again unless they leave the area and come back.
My concern though is that I don't want the client's internal model of the world to grow and grow - it should be culled as they move away from an area - as the server will resend it upon their return, and then it can be bolted back on.
However, if the clients manage this culling themselves, there's a possibility they could mistakenly cull some segment which - according to the server - is still in their "local" area. The server therefore would not re-send this segment, so the player could end up in a situation where part of their map just disappears.
Alternatively the server could instruct the client to cull particular segments, but this seems like a waste of valuable bandwidth, which I'm trying to keep to a minimum.
I'm wondering if there's something I've overlooked here which might make this concern go away. Any thoughts on this issue? Let me know if I didn't explain myself very well (highly likely!)