Interesting find. The relations to traverse aren't sorted so if the order changes somehow, the output is different as well. The main user of these methods, lazy loading, is also updated with this order so it will work properly, what of course fails is your own code calling these methods.
I'm not sure if sorting the relations on related entity name will solve it. Renaming an entity then also changes the order.
I'll do some tests with v2.5 code (as this will be a breaking change, so I can't fix it in 2.0) by sorting the relations and typing the parameters to see if that will ease the pain somewhat. There were cast errors which caused us to use IEntity instead, I'll see if I can overcome that problem.