First, imperative programming is important to learn. Understanding the stack/heap and calling conventions is important. Yes, those things are hard to learn. But once you learn them, they are not that confusing. These are significant pedagogical concerns, but I'm not sure they are so important beyond the classroom.
Second, FP is also confusing to new programmers but for different reasons. E.g. anything that requires folds is typically easier in imperative settings.