Я где-то читал о том, что плохо ставить какой-либо код после использования функции 'header'.
Это не совсем так, потому что запрещено отправлять вывод (HTML или необработанный вывод) в браузер, прежде чем отправлять заголовок. Когда вы отправляете вывод перед отправкой заголовка, вы получаете сообщение об ошибке «Заголовок уже отправлен».
После функции заголовка остальные не будут выполнены, поэтому возврат или выход не требуется.
На вопрос, нужно ли вам помещать все в структуру if / else: это также не требуется, единственное, что вам нужно сделать, - это базовая проверка, если кто-то вошел в систему, а если нет, вы выполните перенаправление используя функцию заголовка. Нет необходимости в обширной структуре if / else.