We might want to see if we can devise a new example (or wait for Robins to break it ;-)) before expending a lot of effort on making the commute_xxx bits more precise.
Here is an example that can trigger the same assertion as in bug #17781 with HEAD. But I haven't got time to look into it, so not sure if it is the same issue.
Aha, Robins succeeds in breaking it at [1]. It should be the same issue as reported here. I've looked at it a little bit and concluded my findings there at [1].