Since Mathematica 9, a number of issues concerning the
::usage and templates were raised.
In 9.0, there was a bug first reported here and better diagnosed here, where error messages were generated by simply moving the insertion point somewhere in the argument of a function for which a
::usage was defined. This was fixed in 9.0.1
Starting in version 9.0 and observed through 10.4.1, it was reported here that functions with formatted
?Function to be called twice in order for messages to be rendered properly. A bandaid solution was given here.
The consensus I gather from the discussion in the comments above is that
::usage and templates are implemented in Mathematica in a very kludgy way. This can be a source of major frustration for package developers.
So the question I raise is which of the issues have been addressed in v10 and v11? Are there plans for a major overhaul of the