Like their problems in the run of play, the first problem with using penalties in a shoot-out is that they're too damn easy to score (about 80% success rate). Any professional player should make his penalty, and thus, a penalty shoot-out inevitably produces villains, and rarely produces heroes (except for, occasionally, a goalkeeper). More often though players miss the target or hit mediocre penalties and have to live with it for four years.
The other reason penalties make a poor tie-breaker is that the skills involved in taking penalties have little or no relation to being a good soccer player, or being part of a good team. In that sense, even if penalty shoot-outs are less random than a coin toss (which they probably aren't) then their non-randomness is useless anyway.
A few alternatives to penalties, in descending order of conservatism:
1. Just move the ball back to 18, or 20, or 25 yards. Now it's much less random and actually takes some skill to score.
2. Use the number of goals scored, or goal difference, up to that point in the tournament as a first tie-breaker (this change would of course be consistent with any other change too).
3. Start taking players off the field in extra time, and keep playing. That is, after 105 minutes, play 9 on 9...after 110, 7 v 7, 115, 5 v 5. Someone will score eventually.
For some reason, penalties make even less sense for deciding the final as opposed to the other knockout matches, as in 1994 and 2006. I guess passage to the next knockout game retroactively legitimizes the penalty shoot-out, but how could something so random really be the final decider in the world cup? It just leaves you thinking both two teams might as well have split the trophy...