Sorry on the previous email, didn't realize there was more in the inbox I hadn't read yet. :)
I think the primary reasons negative indices have been declined is that the host (java.lang.String) doesn't give us a hand in implementing it and that it raises the question of whether negative indices should be supported in other contexts (unlikely). I think there's also a possible disconnect in substring that is start/end based vs start/length based.
ClojureScript didn't exist back then, but I think the issue of portability between Clojure and ClojureScript with host-supported implementations is worth considering, however I'm not sure that's a strong enough argument there to overcome the prior ones.