Also, Drupal is NOT a DSL, even in the way, say, Rails is.
drupal uses an apache config hack to rewrite the urls.
I'm _intimately_ familiar with the feature. That feature came in with Drupal 4.2.0 back in december of 2001, which was the second Drupal release I deployed a site on. It was also the first Drupal release to include any of my own code.
https://drupal.org/drupal-4.2.0
Back in the day the only way to get anything committed was to roll a patch and commit it to a special cvs repository, manually numbering it. then you had to mail the dev list with the name of the patch so you could discuss it, and then if it still applied dries committed it.
I tried finding the mails on gmane, but the repo itself and the emails seem to cut out before.
So while q?= was considered an acceptable fallback, and it was still cleaner than what we had before ... this feature has always explicitly been about supporting url rewrites.
This is me : https://drupal.org/user/1337
When I built bryght.com, my first startup in 2004, trying to be the wordpress.com of drupal, before wordpress.com was a thing : I had to make sure this worked with it.
When I wrote Aegir, a distributed turn-key automated hosting platform for Drupal sites, I had to write the logic that made sure this stuff worked. I did that for apache, and with some help from omega8.cc, nginx.
Please don't try to act like you're an expert on what 'design patterns' we were implementing when we did that, because I'm telling your straight out now, that wasn't why we did it.
I spent 9+ years of my life building major components of the system, and I'm still really proud of all of it. Millions of people all over the world run the software I helped build.
For one, Apache isn't even what I'd recommend to use for serving Drupal - at my last job we were serving 50M reqs/monthly via nginx and it worked very well.
Drupal implements the front controller pattern...it has nothing to do with URL rewriting.
It is true that if you want "pretty" URLs on Apache you need to use rewrites, but I think it is a cheap shot to characterize using a core feature as it was intended as a "hack".