the RAM usage depends on the size of rooms the users join, not the number of users. synapse typically takes around 1GB of RAM (allocate 2 to be safe), but we are working on that.
From what I've heard here from people using the Slack desktop client, 2GB is now normal for a chat client
I think it is perfectly reasonable for a client to use more RAM than a server, having to display a GUI and all. I'm thinking of IRC servers vs. clients. (Certainly not 2 GB, but that's another matter.)
There are a few alternative server implementations under development. Personally I'm hopeful for Dendrite (written in Go): https://github.com/matrix-org/dendrite