I think that your expectation is unreasonable. XFS was designed for machines where popping in a working hard drive was feasible. Making a disk layout adaptable to any arbitrary block going bad is more work than you might think, and for their intended market (not laptops) they did the right thing.
As I said, it could have been a kernel bug, or maybe I simply didn't
understand the implications of recovery, but xfs_repair was totally
unable to fix the problem. It instructed me to use "dd" to move the
volume to a healthy disk and retry the operation, but it was not easy to
do that as I explained before.