As detailed in http://accu.org/index.php/journals/1539
It is possible to specify one argument type in the format string and pass in a different type, using positional markers instead of printf-like type specifiers would make this impossible.
Add a policy for this or branch?
See what C# does, especially with respect to width, alignment and special formatting.
This would also allow SafeFormat to support more argument types: we could support exceptions and container types automatically, and allow user defined types (coupled with access shims).