After literally minutes of further thought, and reading the other contributions to this thread, I can see that there are two things needed: * a syntax for footnotes within article text * a way of gathering them at the end of the article, and inserting links within the article text to the footnote.
It seems that these are two different functions. The first would be done best by using the template syntax. The second would be best done using an extension tag, to allow the footnotes to be gathered together as a list under a heading (and to manufacture that heading if it is not present in the article), and generating the links within the HTML structure. (All of this assumes that template expansion is done before page-rendering).
So, you could have nice templates like {{book-ref|author=...|publisher=...|etc...}}, {{journal-ref}} and so on, taking named arguments, which are * self-explanatory * easy to understand * easy to customise * use existing friendly inline syntax and a lower-level <reference subheading="..."> ... </reference> syntax which can be used within the templates themselves that invokes a Wikipedia extension mechanism. Thus, the implementation (and low-level syntax for invoking that mechanism) is nicely decoupled from the user-visible syntax.
We could probably also do {{extlink}} in the same way, to mop up the remaining in-line external links, and put them under the "External links" subheading.
-- Neil