Critical thinking and memorization are not intrinsically at odds with each other. Rather, they are separate tools that are powerful when used together. If your critical thinking is strong, it can be used instead of memorization, but relying on this is a crutch, and it hurts you in the long run.
I fell into this trap in math classes all the time. My exams would be covered in work where I would do something like reinventing the chain rule from the definition of the derivative. The definition of the derivative is elegant and obvious in its workings, and therefore easy to remember based on critical thinking. The chain rule commonly useful, but it's a special case, and the end result is opaque. So I wouldn't remember it, and I'd just figure it out from scratch on test day.
As it turned out, that got me plenty far. But my grades would have been better if, having understood how to derive it, I had cached it in long term memory. I would have made fewer mistakes, had less work to check, and more time to check it.
These days the same thing happens when I'm working on a math problem for practical purposes. I don't have a lot of these formulas committed to memory, so instead of spending time on actually solving the problem I have, I have to spend time rebuilding math from scratch.
It's the same basic concept as caching and memoization in programming. It would be a mistake to write every function as a giant look up table to handle each parameter combination. But if your code keeps calling the same expensive pure function with the same parameters, you can greatly speed it up by caching the result.