Очередь функций. fadeout ставит в очередь свой таймер и запускает его. Потом выполняется show(накладывает стиль display block). Когда таймер подойдёт к концу выполняется скрытие.
Зачем ? jquery решала проблему кроссбраузерности и отсутствие ряда функционала. Сейчас такой проблемы давно нет. Нативный javascript умеет все то, что делает jquery.