I have the suspicion there are a lot of restrictions for patterns that are undocumented.
One example: E0009 where a pattern "cannot bind by-move and by-ref in the same pattern"
See all the restrictions in check_legality_of_move_bindings and check_legality_of_bindings_in_at_patterns.