Это называется "роутинг" погуглите это слово, во фреймворках он встроенный, но можно и самописный написать.
Да это нормально, считается современным, продвинутым подходом.
Грубо говоря такое лет 10 назад было популярно, пока не нашли косяк с nullbyte и L/RFI (Local/Remote File Inclusion)-
urk вида index.php?page=news
и скрипт аля include('templates/'.$_GET['page'].'.txt');
до сих пор роботы ищут index.php?page=../../../../../etc/passwd%00
сейчас дела обстоят лучше, но всё это не есть гут
если хотите - пользуйтесь, но фильтруйте входящие данные
Разбор url и инклуд нужного скрипта и инклуд скрипта из GET-параметра это разные вещи. Под первое попадает, например, связка PSR7 адаптер + Autoloader + Router