The block editor still remains difficult for developers who need to create carefully created custom experiences for end-user clients. Patterns are useful but not that useful for actual real world use cases when we don't have full control over coding what's allowed or not allowed (what things can be added, how many, what blocks must be in what position, etc.). For actual real world clients, this just means they can easily create a neat experience, but then by accident can mess it up and not know how to fix it, or have guidance on what is supposed to look like.

Gutenberg also still exposes too little control over core blocks (leading to awful, fragile hacks to hide unsupported or inappropriate features) and many of the basic needs, like validation, that have been well solved and long fulfilled by other solutions (like the trusty ACF) are barely fleshed out or left as an exercise to the reader (potentially to break or rely on deprecated features down the road).

I'm excited for the big features on the way, but it's the little stuff that's missing/hardcoded that are really restraining what's possible to ship.