Exactly this (a user-modifiable printf format table of functions) was actually done long ago by Alan Snyder, then of MIT, now of HP, in his runtime support for his PDP-10 C compiler. I currently use most of it in the printf used in my PDP-10 pcc port. It works fine.