I don't see why you consider #1 even as a problem. Player leaves, another one joins. No need to punish or reward anyone.
#2 is indeed a tricky one. First of all, before anyone thinks about a new solution, there already is one implemented and it works fine in LFR. So Blizzard only would have to apply it to dungeons, or at least LFD, as well. But I don't expect this to happen, because it would cost developer time.
So we are stuck with the loot system as it is. And actually it is quite fair, because right now it only let's you roll on items with your mainstat(s for druids and other hybrids) on it. So very likely you will be using this item, for your current spec or your offspec.
For example if a healing trinket drops with int and a spirit proc, a mage also can roll on it. Should he not be allowed to, even if he can replace a green trinket and gains x dps?
Of course you can argue that a healing class has more benefit from it than a mage. But if you go into the "more beneficial" road, you also have to consider several other things: Are both main chars? Does one raid, and the other doesn't? How great it is a update? How many times did one run this instance to get the item? Is this item for your primary or you secondary spec? Which one of them spends more time playing? And another tricky question: Who deserves the item more?
These are all questions you would have to answer if for example you would be a wow-god distributing items by hand, or to be more realistic if you would be on a loot council.
But there is a major difference in LFD compared to guild groups or raids: You will never see the other player again. So you will gain nothing if he gets the item.
So to reduce your stress in dungeons, I would not expect the other players to pass on items they can roll on. So if they do, consider yourself lucky, but if they don't just forget it. Eventually you will get the item, or even a better one.