How to decompose into BCNF while preserving all functional dependencies
this very example is discussed in the first place I looked.

The short answer is that you cannot always achieve all of


BCNF;
an information-equivalent schema;
using keys as the only declared constraint(s).


Pick any two.

In this case you must retain R = {A, B, C}, with key {A, B} -- then we can't losslessly decompose R. In order to represent the FD C -&gt; B as a relation with a suitable key, you need R1 = {C, B} with key {C}. So far we've achieved BCNF. To retain information equivalence, you need an Inclusion Dependency (aka Foreign Key constraint) R[C] ⊆ R1[C].

Strictly speaking to retain info equivalence, that Inclusion Dependency should probably be an Equality Dependency. But this is a contrived example, so nobody in practice would do that.