Actually, due to the quirks of PlayerGui replication, modifications on the server replicate to the client. Other clients would not see this chance. As far as I know it’s the only way to replicate SOLEY server → specific client without replicating to other clients.
cc @elonrocket
If you want the real reason you shouldn’t do this, it’s because it will cause input delay for the player if you do events server side. Especially for mobile players, it’s not a good experience to press a button and there be a visible pause before something happens. Also, since changing things on the server isn’t exactly supported by Roblox, you could risk having to change your entire system if it gets depreciated & removed.
Additionally, if you change the player gui on the client, that won’t replicate to the server. That can cause issues where the client had something that doesn’t exist on the server, and can be more of a headache then it’s worth.
As a final note, if you care about code readability, it makes sense to do client displays on the client and server things on the server, and makes coming back to the code you wrote a few months ago much easier.
TL;DR Just because you can, doesn’t mean you should.