When dismounting from a minecart, the player is routed to the nearest open block. For example, if given a choice between placing the player in an opaque block, or an air block, the game will choose to put the player in an air block.
However, if the minecart which the player is riding in is broken, the player is placed in the exact spot where the minecart had been.
This is not a huge issue for normal gameplay, however minecart systems that are designed to break the cart and place the player somewhere no longer function, which makes it difficult to build an automatic unloader.
This bug has likely existed since the LSHIFT to Dismount was implimented for minecarts.