Umm... Manipulating range is impossible as long as you don't use WE Unlimited. If you do, you can just increase the range of the unit, when it learns the ability, depending on the level of that ability for the (Learning Hero).
Not impossible, i think there are ways of triggering upgrades in with skills which works. Tie the proper upgrade to a skill and get your hero to research the upgrade when the ability is learned. All is this possible in the regular editor in theory according to what i remmeber, But make sure to assigne the upgrade to your hero or it won't work. but if you wish to use WCU, do that instead if you aren't familiar with triggers.
First, you add modified archer's improve bow to your hero's upgrade use. You customized & modify a building w/c has the improved bow upgrade & you place this in the map that is not accesable to anyone. Also in any trigger that has MI event, include the action; hide this building.
I am not sure since I dont have the WE w/ me so basically the idea is this: E: When a unit gains a level (Im not sure about this function) C: unit type of leveling hero = your hero A: Order building to upgrade improve bow (I am not really sure if there is a function that can order a building to train an upgrade)
If all of the above are possible then you can increase the hero's attack range each time it gains a level.
Harper your trigger is totaly wrong, and you don't need a building to research it.
Event: Hero learns an ability Condition: Learned ability = (your spell) Action: Set level of (your upgrade) for owner of learning hero = level of (your spell) for learning hero
It's found under the player catagory (set current research level).