I dislike implicit type conversions, but I think every cast needs to be accompanied by an assertion. Just sprinkling casts everywhere does nothing but silence important compiler warnings.
What do you think of "auto" in C++ ?
edit: now I see what you mean in the context of adding assertions to make type conversions safer, and how there could be some parallels with auto for that
Whatever the answer, it won't surface a contradiction; but that doesn't mean it's not an interesting, obliquely related question.