I have /dev/sda mounted on /, as the root partition. Can I safely run
badblocks in read-only mode on this device? Will it show false positives/negatives because it's mounted?
Read-only is just that - reading from the disk. It will pick up sector read errors but (obviously) not sector write errors.
Categorically, it is safe to run on a device that is being used a mounted filesystem.
With respect to possible false positives, block IO is not "managed", i.e. there are no reader/writer locks. So there is no interaction between
badblocks and the filesystem layer.