r316477 broke zero-length matches when not using the -o flag, by skipping over them entirely. When trying to match non-empty lines (i.e. grep -v -e "^$" [file]), this causes problems.
This is likely to break many things in itself, add a regression test for it while I'm here so I don't break it in the future.