Because lpr does an "exclusive" open on the file you specify as lp=. It does this in order to prevent multiple processes from trying to print to the same printer at the same time.
The side effect of this is that in your case, eng and colour can't print at the same time, (usually more or less transparent since they probably print quickly and since they queue you probably don't notice) but any other process that tries to write to /dev/null will break!
On a single user system, probably not a big problem. I have a system with over 50 printers. It would be a problem there.
The solution is to create a dummy printer for each. Eg: touch /dev/eng.
[localhost]$ touch /dev/eng [localhost]$ touch /dev/colour