That's not true. Long time ago I made a test, in which I spawned few thousand NPCs, that didn't have random animation, movement or any other trigger for sending packet except for initial NpcInfo. Client was very, very slow in rendering them, but even after few minutes you can notice that it will settle with limited amount of NPCs that are rendered. When you move around in such environment, NPCs far away will be deleted, while those closer to you will be rendered. This happens without any NpcInfo packets being sent, so client stores them in memory even though they are not shown.
I can't say what exactly is the problem, but for sure it's not easy to fix.