https://github.com/kean/Nuke
The LazyImage implementation in Nuke is API compatible with AsyncImage but supports image caching. There are also improved image format support, for example there is a WebP plugin.
I think we should swap out the SwiftUI AsyncImage view with LazyImage. The Markup would still be <AsyncImage> but it would now have the desired behavior.