After rereading, I think you actually suggest something a little bit different (interpreting C++ bool as Sql text).
Well, I feel bad about that. bool is too close to integers, I do not see it safe to test Value on bool inside and returning something fundamentally different (text literal instead of number literal).
As I said, BOOL is char(1), adjust your SQL. It works this way since 2003, so it is not a bug, feature request at best