If pgAdmin were a single-user application, I'd agree - however it is not when running in server mode. Other users will not know what is going on if one user exhausts memory.
How about allowing multi result sets only for desktop app?
I *really* dislike that. We should support all features in both modes, except where it clearly doesn't make sense.
The problem with memory limits is - it's an extra overhead to keep checking how much memory is consumed. A row size will depend on the number of columns and data. If we have a predefined algorithm which will decide the limits in a performant way is desirable.
Well we can take the extra cycles to compute actual memory usage, or we can just pick an arbitrary number of rows (which as you note, will depend on the schema and data). The former is clearly easier to tune - it could be an arbitrary limit in the config, or it could be computed based on machine resources and utilisation, whilst the latter is always going to be a guess. I'm not sure I see another way. Anyone else?