Currying is a bad example, as that was a concept in mathematics before it was a software engineering concept. Also defining a vocabulary is no trivial feat. Most of software engineering is deciding what definitions for architectures, modules, and interfaces should be used to make software systems most efficient and maintainable (in a way creating a vocabulary upon a specific domain)
Why does that make it bad? I could call it Mathematical Lambda Patterns. MLP for short and put currying under it.
Or I could just call it english vocabulary within the field of mathematics.
Every single thing you said could be done without the usage of the word "design patterns" and is already done without meta awareness of itself in all fields of engineering, science and anything.
If I were to build a house is there not a language for "architectures, modules, and interfaces" used to make houses more efficient and maintainable? Also it would be (in a way creating vocabulary upon a specific domain)
The difference is for physical architecture it's missing the pompous self importance. It does not need a name for itself. Imagine if it was called "Structural Language Patterns," and every concepts was suffixed with the word "Structual pattern."
You will note "design patterns" is actually derived from physical architecture but physical architecture does not go overboard and give itself a name other than "English Vocabulary" and attempt to communicate with big words where English will make more sense.