perché nessuna guida parla di questo metodo?
Perché fondamentalemte è inutile. Se devi utilizzare il template al di fuori dei tipi esplicitati ottieni solo un errore di linker; in più per ogni istanza esplicita il compilatore deve scrivere il codice corrispondente anche se non usato (e non è detto che poi il compilatore decida di eliminare il codice non utilizzato). Risultato: si ingrossa il compilato per niente, si perde l'eventuale inlining delle funzioni, si aumenta la complessità di gestione (un template deve essere usabile da 1 a N tipi diversi), in quanto per ogni tipo che si intende usare occorre inserire la specializzazione nel .cpp corrispondente.

(quindi si va a far friggere il concetto della programmazione modulare, secondo la quale le dichiarazioni devono essere separate dalle definizioni).
Ma anche no. In Java dichiarazione e definizione delle funzioni coincidono (sempre che con le ultime versioni non abbiano introdotto la possibilità di farlo), per cui il concetto "programmazione modulare" lascia il tempo che trova.