I wonder whether Firefox behaves correctly... It only works with innerHTML, it does not work if it is in the HTML source.
So -
data:text/html,<!doctype html><select multiple><option>a<br/>b</option><option></option></select><script>document.querySelector("select").options[1].innerHTML="a<br/>b";</script>
Will show -
ab
a
b
That seems inconsistent. And Firefox is the odd one out - all of the other browsers do not render line breaks, regardless of the method (innerHTML or HTML source).
I filed an HTML bug, though perhaps I should file Firefox bug.
My recommendation is not to use this feature, not even in Firefox, because you will (at the moment) not get a consistent behavior across browsers (and my guess is that you will not be able to use this feature in future Firefox).