As a small datapoint I recently converted the largish (about 2megasloc) code base I maintain to using likely/unlikely.
I have been very pleasantly surprised by how much more readable it made the __builtin's..
And then surprised again by how much more readable it makes code in general.
I now occasionally add them to my code, not so much as an optimization hint, but as documentation to indicate the expected "Happy Path".
In fact, so much so, I find interesting those cases where I consider it.... and then say, meh, I don't know which path is more likely...