Right now you can fix the issues with Mouse.Icon by using something like a ImageButton or ImageLabel and have it render over the mouse each frame with RunService.RenderStepped
I just think this is an unnecessary workaround, and it could be easily (I think) solved by adding a new Property to the Mouse. Allowing us to set a “HoverIcon” will add a small detail of gameplay that can actually be quite crucial, and allow for a better experience.
Personally I would not do it this way. What icon would be used when a user is selecting text from a textbox for example?
Perhaps a better solution would be to ensure that the Icon property is always respected even when hovering and introduce a property or event that reflects what is under the mouse, this could be an enum which the developer could use to decide which icon they want to show.
I kinda like this, though, because it’s the common case. To not change the icon (or show some response) when the user hovers over it is a big user-experience mistake, and if ROBLOX didn’t intervene, I imagine most games would not implement any solution of their own.