Blogged about many of these:

Other:

Command Language

Word Language

Builtins

Glob WTFs

Bash-Specific

Categories

TODO: organize the criticisms in these categories:

Too Many Escaping Algorithms

Escaping constructs: \, 'single quotes', "double quotes", and $'C-style strings'

Too Many Lexer Modes

Too Many Methods of Negation

Too Many Methods of Showing Internal State

Duplicated External Builtins

Too many Single Letters

See Unix Tools

Builtins that Take Variable Names

A questionable Pattern? These builtins don't behave like external commands because they can mutate memory.