Neto,
Your example isn't quite right. In that case, _package_ abc would not be re-created, but _release_ 0.4-dev would be created, because it has a different release fingerprint than any previous release.
The minimal example of the case I was describing is this:
1) create release => 0.1-dev
2) update package X
3) create release => 0.2-dev
4) revert #2
5) create release => 0.1-dev
We think that step #5 should auto-increment to 0.3-dev, but instead it sees your release fingerprint matches 0.1-dev and doesn't make a new release.
The catch is that that behavior uses the same logic that allows you to do this:
1) create release => 0.1-dev
2) update package X
3) create release => 0.2-dev
4) create release => 0.2-dev
So we want to know if anyone actually relies on that behavior.
-Karl