Survey configuration and message payload delivers approximately 2 kB per survey, after minification. There is a lot to gain by optimizing the payload or even suppressing surveys which cannot be displayed, e.g. to an anonymous user because the survey audience must have an edit count.
The server has access to almost all of the information used to filter so in theory could take over all filtering up to some random sampling, but there's a trade-off between varying over more specific profiles, and efficiency losses due to cache fragmentation.
Server filtering can be introduced incrementally, a few fields at a time. This lets us monitor for performance regression.
Migration is only safe if we include filters on both server and client during the cutover. Client-side filters can be removed after waiting for some window of time in case of potential reverts.