I expect that technically the C++ compiler is a separate implementation
from the C compiler, even when they are both part of the same package
(like gcc). In C++, "int" used by functions in the C library must match
"int" used by other parts of C++, but there is no requirement that it
match "int" used by a C compiler, or by any other compiler on the
system. The same applies between two C compilers on the same system.
But as you say, it would take a brain-dead implementation to end up with
anything different in "int" (or bool/_Bool) on a given platform. These
sorts of things are specified in platform ABI's and any compiler for C
or C++ will follow the ABI for the platform.
(I know of a couple of C compilers where the size of "int" can be
changed from the command line, but these won't be of concern to most
people.)