First of all, the internal language of a cartesian closed category is somewhat richer than simply-typed lambda calculus: it has finite product types in addition to function types. If you also want sum types then you have to pass to bicartesian closed categories, and if you want dependent versions of these then you basically have to work in an elementary topos. All this is discussed in [Lambek and Scott, Introduction to higher-order categorical logic]
The untyped lambda calculus is much more subtle. The absence of types make it particularly unsuited as an internal language for a category; but that is not to say category theory has no role to play in the study of its models.