How this works is because when updating to 4.0, IOS50 becomes a stub. Then downgrading back to 3.3 or under, that stub is kept. Then updating to 3.4, it skips IOS50 because it's a newer one. IOS50 is essential to 3.4, therefore full brick.
I just wonder if there are any other cases similar like...