The word "tail" appears only twice in the SLS, both as method names in example 5.3.3. So it appears that the current (rather delicate!) behaviour of tail recursion is in fact a completely unspecified feature. It would be nice if this could be fixed. :-)