With a sample textfile containing: GoodLine GoodLine Unknown BadLine GoodLine GoodLine "grep 'BadLine' -v -B1" will simply pass everything on like cat. It should just print "GoodLine" 4 times. The same happens for -A and -C.
How is this supposed to be wrong? grep 'BadLine' -v will include anything but BadLine, meaning all instances of GoodLine and Unknown. Since -B1 asks for a context line, BadLine will be displayed as context for line 5.