It would allow CDN's to cache it on the edge in their data centers. You can see Cloudflare's default cache behavior broken down here:
Cloudflare makes customer websites faster by storing a copy of the website’s content on our servers. Caching static resources at Cloudflare reduces your server load and bandwidth, with no extra charges for bandwidth spikes
developers.cloudflare.com
However, in Cloudflare's case even with a
public
Cache-Control header, it still wouldn't be cached by Cloudflare because they also base default behavior on file extension (NOT mime type). You can work around the file extension thing and explicitly instruct Cloudflare to cache it with a Page Rule (as an example, I tell Cloudflare that css.php is cacheable content):
So with Cloudflare you would need to use a Page Rule regardless because of the .php file extension, at which point you can also override the Cache-Control header with the same Page Rule. So with Cloudflare it doesn't do or save much (still would need a Page Rule to override).
However, other CDNs may base caching on mime type, rather than file extension, so for those CDNs, it could be advantageous (assuming webmanifest.php is the same for all users). If the Cache-Control is set to public, I'd recommend the manifest URL to be unique for each theme (like s=1 or something). Because if you cache the manifest URL, all users would get the same version and it looks to me like there are parts that are style-specific, rather than site-specific. That's why css.php is cacheable, because the URL is unique to the style.