I think “clever” is more related to unfamiliarity.
There is actually a lot of cleverness going on that people just become familiar with.
Structured programming is actually very clever if you think about it.
Function calls are, when you look at it closely, very clever. It encapsulates how to jump to a function entry point, how to pass on values in registers or in memory, how to adjust stack pointers, and all other sorts of cleverness.
For loops are clever with different parts of the statement controlling and executing different parts of the loop.
Compare that with BASIC
A six year old child can understand:
10 PRINT “Hello”
20 GOTO 10
Going on to object oriented programming, dynamic dispatch and v-tables are clever. What you call and where you go to in your program are determined by the dynamic type of an object. This is very far from the simple BASIC GOTO
What difference does looking at it like this make.
First we don’t reject automatically reject new concepts just because they aren’t simple. While function calls are complex, they bring many benefits. In addition, this approach emphasizes the role of education to in taking useful concepts and making them familiar to a broader group of people.