Как сделать роутинг на чистом php, перенаправляя абсолютно все запросы в index.php?
сократить .htaccess до такого

AddDefaultCharset UTF-8
RewriteEngine on
RewriteRule !index\.php$ index.php [L]

Две вычеркнутых строчки как раз означают то что если передан существующий файл или существующая папка, то не реврайтить на index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Не вижу никаких проблем, с точки зрения безопасности, что существующие файлы отдаются напрямую, без реврайта. Просто не делайте чтобы в корне веб сервера лежали какие-либо скрипты кроме безопасных или index.php. Все остальные скрипты выносите выше корня веб-сервера (чтобы их в принципе нельзя было открыть через url)

Важный нюанс: если вы будете абсолютно все запросы реврайтить на index.php - то и все статичные файлы (css, jpg, js) которые раньше отдавались напрямую, будут перенаправлены на index.php и там вам придётся самому разруливать их отдачу, считывать содержимое файла, проставлять mime-type и тд.
Есть такая пословица, "дурная голова ногам покою не даёт".

я думаю, что это плохо с точки зрения безопасности. 
С какого перепугу?

Если есть файлы, которые не надо светить наружу, их просто кладут за document root
А такой "роутинг" ничего кроме головной боли не даст.