Instead of using static data, would the CLI compilation work if we just moved the existing constructors to a .cpp file?  The exact same idiom doesn't seem to cause problems in the calendar classes, which also use static variables in constructors.  If this worked, we could unify the CLI and non-CLI implementations for currencies.
(The singleton would still need the change, since it's a template and can't go in a .cpp file.)