(1) What about it? (note that I don't manage websites with a large number of pages)
(2) It's easy to add if conditions that test $_GET, $_POST or $_REQUEST display different things depending on what was submitted
(3) Not often (but have in the past, and will probably have to soon in a personal project). What issue are you anticipating?
(1) It's a problem if you have 2 or 3 (never mind N where N is large) different web pages that have the same stuff at the top of the bottom. I mean you can have
but...(2) ... in either case it is just as easy to write
where you have the option of putting headers on before you include header.php, showing a different header or footer conditional, etc. This approach is structurally stable and scales with the complexity of your application no matter what you're doing...(3) ... for instance say you want to write a page that might return a different format depending on the headers, the router can return JSON if that is called for, or XML if that is called for, or HTML inside the site's global template if that is called for.