хорошо, я грешу на new $module, потому что если вызывать new Router() то выполняется на много быстрее, попробую на разных версиях php может глюк конкретной версии
он и не должен быть полон) поучите программирование. While - цикл который пред условием то есть пока в while($param) $param не будет равен false цикл будет выполняться, почему то мне очень кажется что разработчики забыли вставить где-нибудь return false; или в вашем битрикс-ящике кто то ковырялся и отковырял что то
для меня это строчка кода, написанная на php и хоть эта joomla разницы нет.
пардон у вас вывод зависит от "USER_PROPS_ID =172 посмотрите в бд сколько строк будет c таким идентификатором