B2 server side copy doesn't show cumulative progress

No worries! Rclone has a queue of objects which need to be copied. This queue can have up to 10,000 objects in by default (see --max-backlog). Rclone adds up the size of these objects to work out the size that needs to be copied.

Relatively recently rclone started accounting for server side copies too, so adding the amount copied by a server side copy into the stats (before this rclone only measured bytes actually read from the source).

In this bit of code

You can see rclone doing the server side copies and accounting for their transfers after the copy is complete (line 290). You'll note there is no mechanism for updating the transfer as it continues, it is either all done or not done. However rclone will turn this chunk of data copied into an estimate MB/s of the transfer rate and use that for estimating the remaining time to transfer.

It probably isn't terribly accurate for server side copies!