Already in the 30s it was known to be required by even the simplest functors such as pi-zero. All areas of mathematics lead to qualitative leaps like the functors of algebraic topology. We carry the inclusions around only as long as we need them. Of course some improved version of tt is needed to handle the presentation of cccs, but the basic issue of how to deal formally with inclusions and memberships between subsets arising as equalizers arises already with Lex. In general given any left adjoint, such as the one from Cat to Lex or from Cat to CCC or the one from sets to monoids,etc, there is an objective notion of presentation that arises.
Formal systems are subjective instruments for describing and clarifying such presentations.
Naturally such formal systems would involve specifying both domains and codomains. I believe that some of the implementations mentioned by Rydeheard have these features, while others follow the less efficient route of describing categories in some previously -programmed system of logic. There need not be an inevitable mismatch between useable formal systems and the mathematical structures they strive to present.