I think the first and most important thing to note is the purpose of the caches. Caches provide faster access to data by keeping it close at hand. In Clarity's case, this data normally resides in the database.
Flushing the caches on a regular basis will not accomplish anything other than SLOWING down the performance of the application by forcing it to go back to db tier to refill the caches again. I would strongly recommend against flushing the caches on a regular basis.
To answer your other questions:
1) Flushing caches causes a flush across the entire Clarity cluster, not just the application instance you are flushing the caches in.
2) Not certain without testing the behavior.
3) Flush All flushes ALL of the cache groups and the configuration (the application instances cached copy of properties.xml). Flushing the configuration merely flushes the cached copy of properties.xml. This latter flush is useful if you change something simple in the NSA such as LDAP configuration, SMTP mail server, Entry URL, etc.. Any values that are used at Java startup time will not be affected by a cache flush (such as Java arguments).
Sean