This bug appears in GNU grep version 2.20. It is not present in the older version I have installed on a home system (2.6.3.)
test case (single line)
abchelloabc
grep does not find the line with grep -e '^hello' nor with grep -e 'hello$'
however, the line is output with
grep -e '^hello' -e 'hello$'
I downloaded, built and tested the bug on GNU grep 2.21 and it still appears.
weird.