You probably want it to look at the rest of the line after sorting
according to the initial numeric string, like this:
cpu% cat tmp/sorttest
2
7
2.1
2.1.4
2.1.1
term% sort +0n +1 -t. -u tmp/sorttest
2
2.1
2.1.1
2.1.4
7
I think the "strangeness" you observed is consistent with what
the man page says:
-n An initial numeric string, consisting of optional white
space, optional plus or minus sign, and zero or more
digits with optional decimal point, is sorted by arith-
metic value.
-u Suppress all but one in each set of equal lines.
Ignored bytes and bytes outside keys do not par-
ticipate in this comparison.