Indeed... WEU is a solution. Or just have an upgrade which affects only the hero and whenever your hero learns the ability, you check the ability and depending on its level you can automatically make the upgrade. Some trigger in Player - tralala. Don't think that JASS is better than GUI except multiinstance, leak solving and yeah, and some functions that Blizzard were too lazy to add to GUI as well (perhaps you thought at this alternative). One of them is the lightning one which allows the lightning to be created depending on the Z coordinate as well.
I use JASS because I maneuver it much faster than GUI and because I use multiinstance. And moreover, loops are much more confortable since you can put any condition you want, you don't have to limit on fors.
~Daelin