If it is not successful, you'll receive an explanatory error message.
So if it works following this spec, expires must be returned.
Actually it makes no sense to me that they are returning time-limited access token, but no expiration time, right? If they are not returning expires parameter, I think this is Platform's issue and you might want to report a bug or ask developer group for similar situation.
I hope it helps you and let me know when you have any progress.
I confirmed the edge cases that user access tokens become ones w/ no expiration time. They describe it is not an intended behaviour, but it occurs because of the side effect of how they link page access token to its owner's access token. https://developers.facebook.com/bugs/597779113651383/
Now, as of version 1.22, this module does not check the existence of expires parameter.