The most important points on optimisation are already posted. I just want to point to an additional argument that is most often underestimated. You asked if there is any advantage in reducing from, say, 3000 to 2000 events, even if everything is working as before, game-speed-wise. There is! The leaner your event sheets the lower the risk of losing overview. You might not be able to maintain your game with redundant or not-so-optimised events.
Let's say you have quite a few events for the movement of the player char. You can of course enter those events over and over again, wherever they are needed. But if you create a function instead and call that function wherever needed, you gain massive programming advantages. For example, if a change is to be made you only need to change once. Just that one function, no matter how often you use it in the event sheet.
And if you put those functions on their own event sheet and include it into each layout where it is needed, it is again a lot easier to maintain the code.
In addition, add comments as much as possible and enter a description for your groups. You might think that you know what the groups are for or those special events do. But if you release the game, work on something else and then later need to go back to the other game, because players reported bugs, you might not exactly remember.
In short: Less and good commented code = better maintainability