I'm pretty sure you can put all the equip commands into a single macro.
They probably didn't want to put in a class-specific memory for actions because think of how much more memory it would require to store your character. Right now you have the personalizations you made in character creator, the gear and items in your inventory, what you're wearing, the abilities you have up now, and your ranks (am I missing something?). Now I have no idea how much space is required per ability, but it'd have to include information to specify which ability it is and which slot you're putting it in. There are then 30 something? ability slots. So 30ish times however much storage is necessary per item, max. If they were to save that sort of information for every class you've played, then that's a maximum of 18 times 30ish times storage per item. It might just be a smaller file to store your macros, at the very least it'd be less connections to different files (you'd have to point to the class and to the ability files if you store abilities per class).
tl;dr: it's either (a) to save space or (b) to make character data less complex.
Besides, once you've made your macros, except to update them for new equipment or abilities, then they're set. You can use them whenever to switch.
Unless they're doing some FUBAR'd programming, all it would really take is a 2D array of "shorts" (2 bytes) which is enough to store a number up to about 65,000. If they used "int" instead (4 bytes), the number could be as high as a little over 4 million. Map each number to an ability, then store the number in the correct array position. Even with the 720 slots required to store each slot for each class, you're looking at less than 3MB per character (plus 2 or 4 bytes onto whatever representation of an ability they use, for the mapping).
Nevermind that action bar mapping should be stored client side anyway (like macros already are).