Will calling
$ httpd graceful
clear out the APC cache, or do I have to do a full-blown
$ httpd restart
to do it? (Keeping in mind that I know there are better ways to do it, like calling apc_clear_cache() programmatically).
Graceful does not wait for active connections to die before doing a "full restart". It is the same as doing a HUP against the master process. Apache keeps children (processes) with active connections alive, whilst bringing up new children with new configuration (or nicely cleared caches) for each new connection. As the old connections die off, those child processes are killed as well to make way for the new ones.