It appears ns-tracker will cease following a namespace when there's non-commented content before the namespace declaration.
untracked — (any of the four possibilities when uncommented, for example):
;;; (println "before ns")
;;; (println "loading" *file*)
This is a limitation of the tools.namespace library, which assumes the first form read is the namespace declaration. In practice, it almost always will be, and I haven't heard any reason why it shouldn't be, so this doesn't seem like a huge problem.
Great, thank you for pointing me in the right direction!
TBH I'm not sure it's fixable. There are any number of different ways that you could obscure the namespace a file contains. The only way for tools.namespace to work is to rely on a convention.