As you explain in your own description, you trigger a rollback event, therefore only the before and after rollback event will be triggered.
You have never removed anything so the delete events may not be triggered. And because deletebehaviour is sort of a delete event this will probably not be triggered.
If this is correct behaviour I don't know, but I don't think that it is the desired behaviour. But you should probably create a feature request in MXDN
If Object X is new (which it should be according to your explanation), the rollback should delete Object X and subsequently trigger the deletebehaviour routine which should delete Object Y as well.
The only reasons I can think of which would prevent this behaviour are:
If those cases do not apply for your situation I would suggest to create a small project which reproduces this behaviour and file this as an incident in MXDN. This will allow us to investigate this problem in greater detail.