What prevents one from replaying a BCC transaction by nulling the SIGHASH_FORKID bit? BCC transactions are "replay-protected" by the SIGHASH_FORKID 0x40.
However why can't I take one such transaction, flip off the 0x40 bit and here's a valid transaction on the BTC chain?

I guess that bit enters into the signature somewhere, but where?
First of all the sighashType field with (or without) any bit fields is used in source data while for signing. The signature does not sign itself, but it signs sighashType. So, changing sighashType invalidates signature.

Second, the data for signature is created in different manner.