Just curious, were you optimising for storage or serving costs, and were the expected savings realized? I've been itching to try live serving out of B2, but its latency jumps around quite a lot, and the hot cache layer does not stream large (>100MB) objects during first fetch, so it's not without some downsides.
The objects we moved to B2 are essentially archive material and not expected to be regularly accessed, so it was purely a cost optimisation. We'll be adding another ~50TB per year to B2 so we expect the long term savings to be significant versus leaving these objects in S3. Because of the object count (and per object size), moving them to Glacier was not an option.