Optimisation. Just optimise what you do on the server- when you’re firing stuff like bullets, you likely won’t be firing much data between the client and the server and then vice versa anyway. As long as you don’t do too much on the server aside from validation, you should be fine. All’s a remote event is doing is firing data back and forth with a few reliability checks in between.
With my gun system, the client fires to the server, then the server fires an event to every player (apart from the player who fired the bullet) telling the players a bullet was fired from that player’s gun. No effects or anything are managed on the server, and no parts are created, the server just validates what the shot hit and then sends positional data to everybody else, allowing other clients to manage the effects and stuff like that. Leaving the server to only managing shot validation, I was able to have 50 players in combat at once with only minor server impact.
Basically, what I’m saying is, don’t worry about it. As long as you manage your memory and optimise your code in the correct places, you’ll avoid memory leaks and you’ll avoid overloading the server. Servers exist to pass data between a client and other clients, after all.