During evacuation failure handling we iterate over the regions that contain objects that we could not move during the collection to discover those objects and process them. Given that we do the expensive iteration anyway we should also refine the BOT (to reflect the location of individual objects, not TLABs/PLABs as we do now) as it would be a very minor overhead on the evacuation failure processing code.
Additionally, this is a prelude for another CR (6994297: G1: do first-level slow-path allocations with a CAS) during which we'll disable BOT updates for eden regions (we'll ultimately do that for survivor regions too) which means that recreating the BOT during evacuation failure handling will be a requirement, not just a small performance improvement. But this change is self-contained so I decided to open a separate CR instead of folding it into 6994297.