Don't worry about it, it is right.
You see, mouseenter is an event that is triggered when the mouse first enters an object. How do you know if the mouse just entered an object? It has to "not" be on the object before, and then once it is over the object, the trigger is fired. How do you check if the mouse is (not) over the object? You ask, every tick, "Is mouse over object". So while yes, the mouseenter event is only fired once, it still has to evaluate the mouse position every tick to check if it is or isn't over the object.
It's similar to constructs "On collision" which is a trigger condition, but you only can know that two objects collide if you check for it every tick. So "On collision" will actually still require collision checks every tick, but the trigger is only called once.
Unless you are talking thousands of buttons you need to check every tick, this will not be an issue even on mobiles.