destruct: bugfixes

- Tell the user a case is not handled instead of failing with "TODO"
- Remove an [assert false] on a branch which is actually reachable