Where should a plugin or widget cache its results?

I find that relying on the filesystem to cache results is easy for maintenance, diagnostics, and performance.

Please note that this might be true in some (maybe even most) circumstances, but not all of them. If your code is meant for anything beyond personal usage you don’t know with which file system and hardware will it be used and how will it perform there.

WP is engineered to use database for storage of textual data, that is more typical and logical first choice than file system.

Is there a good, more-or-less standard approach, or a blessed approach, to choosing a filesystem location for a cache?

wp-content folder is meant as a place for files uploaded or generated during operation. Plugins that use file cache should create folder for it in there. Note that WP is flexible about most of folder structure and it can be easily renamed/relocated from defaults – use appropriate functions to determine that rather than hardcode default path.