Yeah. Shell semantics can be pretty unintuitive sometimes. I often find it helpful to translate these ideas to standard programming language terms.
* Commands are like functions
* Commands in /bin etc. are like library functions
* Builtins are like a language's primitive functions
* Keywords are keywords
* Commands are like functions * Commands in /bin etc. are like library functions * Builtins are like a language's primitive functions * Keywords are keywords