- It has poor visibility, it hides control flow branches in a single statement / expression. That's one of the reasons Go got rid of the ternary operator in favor of an if statement where each branch has to be on its own line.
- It isn't easily breakpointable.
- It favors "bubbling up" as-is over enriching or handling.