It's not that weird. When you call an animation in the Sprite's actions list it only asks for the animation name. If you have two animations in Hero sprite called Attack, which one is it supposed to pick?
Individualizing names and coming up with conventions as MelVin suggested will only help you in the long run anyway.
The folders in the sprite's animation list are there purely for organizational purposes and cleanliness. Makes it easier for you to find an animation.
Instead what you should do is
Movement
Idle
Walk
Run
Jump
Attack
Punch_High
Punch_Low
Kick_High
Kick_Low
so on and so forth.
EDIT: Just realized you also had suggested having an animation be listed as High.Attack, Low.Attack, etc... I'd have to doublecheck but I don't think you can do it that way as the Sprite animation requests a string, and strings CAN have periods in them and all manner of other characters. Also, you can't very well just leave it without the quotes and turn it into a command because High.Attack will just look for the "High" object and try to find the property "Attack". I honestly don't see any good way around it that won't call for a rewrite of the way animations and variables are called, which seems more trouble than it's worth. The method currently used is perfectly fine, and in fact encourages clean code in my opinion. Just rethink your organization.