I have implemented initial byes for Swiss and Dutch formats. I do not find value in implementing it for elimination formats, as it creates undesirable consequences for future rounds. The only byes in elimination formats should be those created by having a number of players that is not a power of 2 (and thus, the number of byes will equal the difference between the next greatest power of 2 and the number of players).
The problem with double elimination is that when a player was dropped, nothing was done to the loser's bracket, thus resulting in a hole in the tournament. This has been fixed by placing an undefined player, then giving a bye to whoever gets paired in that match.