Too many variables, you don't state your workload, filesystem(s), storage specs, host or guest mix, though even if you did I'd probably still just generalise ;-) As a set of guidelines:
- nothing trumps pragmatic reading of vendor documentation and emprical evidence. vmware in particular have useful and comprehensive white papers
- each guest ought have the best notion of what to cache, e.g. filesystem metadata might be more useful, only a guest can accurately pre-read, so a guest cache should be more effective
- if you have deduplicated storage, the vm host caching might be more effective for certain workloads
- if you overcommit on memory all bets are off
- memory is always faster than spinning rust, a SAN might make this less noticeable
In theory, a vm guest storage driver could intelligently communicate with the host to optimise buffering, I'm not aware of any specific implementation.
You could probably benefit by reducing vm host buffering, if extra memory helps your guest performance. You can't tell for sure without measurements, so: measure, analyze, tune, repeat as necessary.