Вы же сами почти ответили на свой вопрос:
Когда начинаешь разносить его по папкам в соответствующие разделы, используя модули каталога отдельно, а не комплексный компонент
Вот и используйте комплексный компонент с настроенным SECTION_CODE_PATH.
Если же вам религия или здравый смысл запрещают использовать комплексный компонент, то это тоже решаемо - самый простой способ это совместить list.php и detail.php в один файл и заворачивать на него ВСЕ url вида /new_page/что/то/там/еще/ , забирая в переменную только последний токен (
еще в данном случае). Далее вы проверяете есть ли у вас раздел с таким кодом и если есть выводите компонент раздела, а если нет - компонент элемента с таким кодом.
Пр это вы сталкнетесь со следующими проблемами:
если у вас есть раздел и элемент с одинаковыми кодами, то будет показываться раздел.
выводимые данные не будут зависеть то что/то/там и в этих токенах можно будет написать какую угодно ахинею.
Исправить это можно помещая в переменную весь url - что/то/там/еще
При этом в файле нужно будет его полностью разбирать, убеждаться и после нахождения сущности
еще, проверять соответствует ли ей путь что/то/там. Таким образом вы реализуете практически кусок комплексного компонента в скрипте (но я считаю, что это все равно лучше, чем использовать комплексный компонент).