Yes, there are many cases where read_mostly brings huge improvements.
I did test your idea on a 4 CPUS server, and system time was roughly doubled,
from 11% to 20%
Of course, you noticed that puting a __read_mostly attribute force the linker
to reserve space for the variable. So a null variable previously in bss
section (no space in vmlinux file) is now in .data.read_mostly. Not a big deal.
If you want, you could play some .lds games to create sort of a
"bss.read_mostly" section to save 10000 bytes in vmlinux.
--