Why can't I use a bit field as a boolean expression in a SQL case statement?
Because the bit datatype is not a boolean type, it's a datatype used to optimize the bit storage.
The fact that the string "true" and "false" can be converted to a bit can be misleading, however, quoting from MSDN , a bit is "An integer data type that can take a value of 1, 0, or NULL."