The cache can be cleared via `/proc/sys/vm/drop_caches`. http://linux-mm.org/Drop_Caches
Yes it can, but you probably don't want to do that. You definitely don't want to do it in an automated way when the machine is experiencing memory pressure. There are very good reasons that Linux (and most other modern operating systems) makes aggressive use of page caches and buffers. For the vast majority of applications dropping these caches is going to reduce performance considerably (disk is really really slow)…
The cache dropping is actually useful when you are doing benchmarking...