What is the purpose of the alternate dungeon entrances in The Legend Of Zelda
Solution 1:
It is highly likely that the game's initial design had some fancy thing in mind, like dumping the user into a different room than the main entrance. However, that was infeasible due to limitations in the code used for the game's map format.
Also, each room had only one destination, even if there were multiple "entrances". By "entrance", I refer to the idea of not only staircases (found in the overworld and the underworld), but also caves. The overworld was not substantially different than the underworld in this respect.
I have a bit more information about this topic, thanks to a friend who dedicated a summer to reviewing such tidbits in great detail, and later gave me a summary of some of his findings.
Many players may have realized that many of the rooms look like they have the same basic layout for the center (ignoring certain details, like the walls/doorways, monsters, and so forth.) These similarities are no accident. Since there was substantial economic incentive to try hard to minimize required memory space in this day when each bit was much more expensive than today, the game used multiple techniques to minimize the amount of data required for each room. Each room had a single reference to a pre-defined layout. Each layout was made up of columns that were re-usable in other layouts. And even each column was made up of tiles that could be repeated: the first bit of a tile could be used to specify whether it was simply a repeat of the previous tile (just North of the one just used). So even though CPUs were far slow than today, the data that made up the floor centers had at least 3 references to look up (room layout number, column pattern number, tile type), which all resulted in re-use of bits.
The code was designed so that if Link ever walked off of the bottom of the Underworld Map, then he would go back to the overworld. Every dungeon entrance is on the very edge (and, specifically, on the very bottom) of the map, and that's why.
If the format of map data was altered so that more bits were used to support multiple destinations, Nintendo might not have felt that the available memory could fit the five different sets of 16x8 collections of screens/rooms that they did end up using. (Two of those were for the First Quest underworld, one for the Overworld which mostly re-used the same memory for both quests, and then two more collections were used for the Second Quest underworld.) If Nintendo had stuck to their vision of allowing multiple destinations, we might not have been so fortunate as to be able to enjoy the "Second Quest".
Solution 2:
Likely they were intended to lead to different rooms, but the first game didn't have the technology to do that, and several were never removed. This is used successfully in later games, starting with Skull Woods in A Link to the Past.
Side note: For those of you who don't know what Ucodia is talking about, in the first quest both the third and sixth (and possibly fifth, I forget) dungeons had alternate entrances in the same room as their normal entrances.
Solution 3:
From what I recall, it is, in fact a limitation of the hardware, memory and such and maybe a little bit of a software/engine limitation.
For the example's sake, we'll use two terms. "Warp" will represent a defined destination the player is sent to.
"Access Point" will represent the image, or sprite that represents an object the player interacts with to reach a warp - a doorway (black square), staircase, and so on. This does -not- include normal navigation to the north, south, east or west boundaries of a screen.
Each screen - be it overworld, cave or dungeon can have only a SINGLE warp set and that's it. Whenever the player interacts with an access point, whatever it is that's on a given screen, the game locates the specific warp set for that screen and that's it.
Ultimately, warps are set on a screen-by-screen basis and do not directly relate to access points - if a player touches an access point, the game handles some code that tells it to look for the given warp. That's just about it.