Do spells really suffer that much from multi-version syndrome to need this kind of update-friendlyness?
Well, I dislike the first option because it kind of assumes the whole spell is in a single struct. I often prefer to organize my spells into multiple structs, there could be one for the main channeled spell instance, another for the projectiles that are being spawned etc. Of course, if all non-config code is outsourced then you could still have multiple structs all forming a single calibration section.
The hashtable idea is interesting, too.
Perhaps it makes more sense if you're using files but with GUI triggers it feels like having two instead of one is more trouble than it's worth, the one-"trigger"-per-spell requirement of JESP was a good thing and usage of vJass libraries already violates that enough (of course, in that case it's worth it because libraries have other massive advantages).