OOP and other design patterns are also susceptible to memorization. I suspect that you're bringing this up because we have vastly different views of what difficult abstract thought is.
Here are two problems that I suspect are difficult to solve on programming experience alone.
1. How does Google display instant results (and recommendations) when you type into the search bar?
2. How would you build a Siri competitor, and what would be the biggest bottlenecks?
A problem that someone with minimal programming experience could probably solve would be.
1. How would you build me an inventory system which has an app, automated deploy, and unit tests?
2. Imagine you have only ever built Android apps with a NodeJS and Mongodb backend. How would you build an iOS app with a Python and MySQL backend?