Not necessarily so because you’re using Cloudflare. If you use a low browser cache on Cloudflare (say 5 min) and a high edge cache (say 1 day), then the asset is cached on the Cloudflare POP for a day, and thus saving bandwidth and being served at a higher speed, without having to use a higher browser cache at the same time.
For one of my websites on Cloudflare I set cache-control to public, max-age=0, must-revalidate, which essentially tells the browser “don’t cache this HTML page, and always check back with the server”.
Yet my site is very fast (35 ms HTML page download) because I’ve cached the pages on Cloudflare’s POPs for 1 week. (When I update the website, I purge the Cloudflare cache.)
Obsidian could use a similar model by offloading the assets to Cloudflare’s POPs, and still maintaining a low browser cache so that updates can be published quickly.
Another benefit of using a low browser cache (and a high Cloudflare edge cache) is that Cloudflare automatically evicts assets from its cache that aren’t requested frequently. If the browser cache is for instance one day for an asset, then there are a lot less requests for that asset in Cloudflare’s POP and so it seems less popular (and with a higher cache of being evicted from cache earlier than the edge cache expires).
I’m not sure about this one. If you use the Last-Modified HTTP header, the browser will (should) check back with the server to see if the asset has changed since its last visit.
If it didn’t change, the server should return the 304 - Not modified status code, which prevents the browser from having to download the asset again. If the asset did change, the server should send the regular HTTP response with the updated asset, which the browser then receives.
You can also use the ETag HTTP header to have the browser check in with the server.
You’re right though that with the Cache-Control HTTP header there’s no additional check in with the server, so with that approach there’s indeed no way to tell the browser that the local cache asset may (or may not) have changed.
More about caching (not saying you need this, but for interested readers):