I think that's the main point where we disagree. I think there's a hell of a lot more to it.
I remember noticing when I was in school that while I could learn a variety of things, there were definitely subjects that were a lot easier for me and others in which I'd struggle no matter how hard I worked. I also observed other people with very different profiles of easy and hard subjects.
I barely passed organic chemistry. I studied hard, but it just would not "take." I had a friend who breezed through it. Anything that involved writing though? I'd breeze through it. I could get As in any class that involved understanding concepts and writing about them with almost no effort. This same friend struggled to write an essay.
I actually dropped out of vertebrate anatomy. Tons and tons of clades and names for discrete things. I found a way to adjust my major requirements to avoid taking it. Otherwise I would have had to switch majors. There is no way I could have passed that class with any amount of tutoring.
It's like I have a photographic memory for concepts, but can't recall discrete facts. I kept looking for the underlying patterns in organic chemistry but it turns out we don't understand it well enough to have those... we just know a ton of reactions that do things. I flounder badly in subjects whose facts can't be attached to an abstract conceptual framework, but I can read about a concept once and I understand it forever.
As a programmer I really love IDEs with "code insight" and other features that basically consult the documentation for you in real time. I get everything about the concepts and algorithms but can never remember the order of arguments on memcpy() even after using it for 20 years. I know memcpy() is there and what it does conceptually though, so it's fine since the IDE will show me which argument goes first.
My point is that different people who are "smart" can differ radically in their ability profile.