Why not AIC. sfa offers many model_names for the same data, and AIC assumes the fitted model is correctly specified -- exactly the assumption in doubt when choosing between "NHN", "NE", "NG" and "NTN". Most such pairs are not nested either, so the ordinary likelihood ratio test has no chi-square limit.
What TIC does. Takeuchi's criterion replaces AIC's penalty \(d\) with \(\mathrm{tr}[H(\hat\theta) I(\hat\theta)^{-1}]\), where \(I\) is the sample Fisher information and \(H\) the outer product of the per-observation scores. Under correct specification the information matrix equality gives \(H = I\), the trace collapses to \(d\), and TIC equals AIC. The gap between penalty and df -- reported as ratio under detail = TRUE -- is therefore a readable diagnostic in its own right: a ratio near one says the distributional assumption is not doing visible damage.
What vuong does. It tests \(H_0\) that the two models are equally close to the truth in the Kullback-Leibler sense. Neither model has to be correct. With \(m_i\) the difference of per-observation log-likelihoods, the statistic is \(n^{-1/2}\sum_i m_i / \hat\sigma\), asymptotically standard normal. Because it is a test rather than a criterion it can return "neither", which is frequently the honest answer and is not available from AIC.
Requirement. Both need per-observation log-likelihoods, so the fits must be made with keep_objective = TRUE. This is supported by sfm (for "NHN", "NE", "NR", "NG", "NNAK", "THT", "NTN", "NHN_Z", "NE_Z", "NU", "NGE", "NLN", "NW", "tHN" and "TSL") and by psfm. vuong additionally requires both fits to use the same observations, which it checks by sample size and warns about when the data arguments differ.
Estimators that maximise nothing. psfm's "GTRE_SEQ1", "GTRE_SEQ2" and "SSFE", and ivsfm's "C2SLS", are moment-based or FE and have no log-likelihood, so no likelihood-based criterion applies to them and both functions refuse rather than returning a number built on NA.