reducing the amount of code in ram to free up space

I don't worry about long names inside such a short, transparent function. If anything, just to not be distracted. It's easier for me to associate the type (the Important Part) with a short name than with a long name for such brief use. When you've done dozens of those a day for weeks it gets to be apparent but a psychology prof or student can tell you the same.
Long names are better for code that runs a screen or more and for globals but are not any kind of universal better IME. Your mileage may vary. I've seen people who won't debug 20 lines of code without a flowchart and a staff meeting; they would long-name everything.

FM is flashMemory... perhaps it should be FMP or full length for finger exercise?

I have never seen the like of reinterpret_cast<__FlashStringHelper *> (FM). Where are docs for that and what-all includes are necessary? Why wouldn't it be better to ditch the printMsg function totally and just inline the print statement?

Will it work with IDE 0022? My Arduino as ISP works with 0022 and I don't feel safe with 1.0.