Вообще, выпадать они должны в обоих случаях, поскольку результатом SHORT(number) должен быть тождество number, что для 80000000L невозможно (это больше  чем MAX(INTEGER)). То, что первый вариант работает и возвращает отрицательное число, это лишь особенность реализации, на которую уповать не стоит.