Ok I figured it out finally.
Commenting out HPGT(LastSeenBy(Myself),20) and compiling again has finally got my Mage casting Magic Missile!
According to Google:
0x4011 HPGT(O:Object*,I:Hit Points*)Returns true only if the current hitpoints of the specified object are greater than the 2nd parameter
Good to know that's how that works but it seems like an overly restrictive behavior. I'm going to keep it disabled and play on. At last
IF
ActionListEmpty()
See(NearestEnemyOf(Myself))
//HPGT(LastSeenBy(Myself),20)
!HasBounceEffects(LastSeenBy(Myself))
HaveSpell(WIZARD_COLOR_SPRAY) // SPWI105.SPL (Color Spray)
THEN
RESPONSE #100
Spell(LastSeenBy(Myself),WIZARD_COLOR_SPRAY) // SPWI105.SPL (Color Spray)
END