Почему не стоит передавать аргументы в функцию по ссылке?
Не стоит передавать аргументы по ссылке без реальной на то необходимости.
А чревато это изменением значений аргументов внутри функции и использованием незапланированно изменённых значений после возврата из функции.
Ну и константы не сможете передать в таких аргументах.
Никакими. Все "ужасные последствия" связаны с непониманием того, что делаешь, а никак не передачей по ссылке. К примеру, в ООП нельзя передавать кроме как по ссылке, но даже в крупных проектах "ужасных последствий" от этого не наступает. Целый ряд встроенных в php функций также используют передачу по ссылке, и если на них посмотреть, станет понятно, что это сделано абсолютно корректно.