I don't have any recommended reading I am afraid. The ability to use C
casts to cast from derived to private base is required by these words
in §5.4/4 of C++14, in describing the behaviour of C casts: "The same
semantic restrictions and behaviors apply, with the exception that in
performing a static_cast in the following situations the conversion is
valid even if the base class is inaccessible" .
Therefore, C casts can cast as if by static_cast to inaccessible types
even where static_cast cannot.