This is something of a religious debate.
PROS for require and include statements at the top of the file:
1) dependencies are clearly documented in a consistent reliable place.
2) increased readability/maintainability
3) OP code caching is simpler (although you could argue that this doesn't affect the developer directly)
CONS for require and include statements at the top of the file:
1) If you're doing some kind of dynamic runtime including (such as with __autoload()), a hardcoded statement at the top of the file is impossible.
2) If only one execution path in the code uses an include, having it included every time, unconditionally is a waste of resources.
3) long list of include or require statement is just noise the developer must scroll past when editing a file. Of course, a long list of dependencies can be viewed as a sign that the code should be broken up into smaller more focused pieces, so maybe you could spin this one as a PRO because it makes a code smell stand out.