After a whole week, the problem is still there. The only findings so far are that it's indeed caused by BRepAlgoAPI_Fuse, and that the faces that disappear are those not modified by the boolean operation. Not long ago I was having another strange problem which I nailed down to an uninitialized attribute in AIS_InteractiveObject (which I reported here). That's the only thing I can think of: another uninitialized attribute somewhere. It may be worth mentioning that I'm using Roman's patches plus some other patches found here in the forum.
Another finding is that it only happens when using the debug DLLs. I just tested it with the release ones, and it works as it should. Trying to run it with unpatched DLLs crashed the application, and I don't have the old .lib and .hxx files to try recompiling the DLL. That makes it harder for me to check if it's caused by one of the patches, which would point to Roman's.
I'll leave it like that by now.