As an experiment I decided to shift all my blog assets (mainly images) from S3 to R2.
It was a very smooth transition for the most part. I copied all the files across, and since harrisonmalone.com uses Cloudflare for DNS, I was able to use a custom subdomain (images.harrisonmalone.com) for all the assets in R2.
I then did a DB update to change all the image urls for my music and games page. This was very quick with some help from codex.
I also did a small rewrite of my update-blog script to ensure that the Date: added to the front matter for my posts is observed. I could then just do a simple find-and-replace to update all the image urls across my site.