I'm going to quote everybody's best points and add my own perspective, that doesn't mean I'm going to challenge anybody, because there are some points here I feel I totally agree with.
Suppose there was a room with spikes and a block puzzle to get around those spikes. If the spikes do half a heart of damage, the player will just " Uhhh... alright then." and tank the hit just to escape the room quickly. That feels super-cheap.
But if there's a puzzle in the dungeon that demands that the player be at full health so they can use their sword beams as a gear-check of sorts, and taking ANY damage (Because they have no potion and enemies don't give hearts.) will mean they can't complete the dungeon, that's definitely something different. Or, if the spikes are an insta-kill or do 8 hearts or something.
Basically, it all comes down to the motivation of the quest designer AND of the player. Does the player have the luxury of being lazy? Is the quest designer forcing the player not to be lazy and be unable to tank a hit? Are there spikes and a block puzzle in the room simply because the quest designer didn't manage to think of anything better to do with that room, and just wants to occupy the player's time?
In my style of design, I try to discourage this laziness. Lots of rooms you have to "navigate around traps", if you are just trying to tank obstacles to get through faster, that can and will be a punishing experience, especially on harder difficulties where this type of behavior is highly discouraged because it could result in life/death. That said, I'm starting to wonder that by "trying to discourage laziness" is in fact just me being a dick and is poor design. I notice sometimes people just want to walk through obstacles, and then hypothetically I'll get blamed for having those obstacles that slows them down.
My question is, should I start just letting people be more lazy and empty up my rooms of the obstacles and traps that I consider to be the "gameplay" of the dungeon?
But there is no other way to judge fairness, so that's why I think it's heading towards the right direction.
I'm beginning to wonder if this is true. What you describe here is now the issue I'm starting to really ponder. Are we sure there is no other way to judge fairness? Because I think there might be, and we are both not looking at this from a more clearer perspective. For me, I get by because I have beta testers, but I'm realizing there are a lot of people who can design very good fairness and the only beta tester they have are themselves. So I'd like to think there are other ways to gauge fairness, but it's something both you and I are clearly not getting.
Making sure it is possible to go through each room without taking damage is a good start. It doesn't have to be easy, or something the player can perform every time, just make sure it's possible.
I would add that to be completely fair, the player should also theoretically be able to do it without prior knowledge of the dungeon. For example, an enemy that instantly hits you as you enter a room unless you already know the blow is coming and prepared yourself, is not fair either.
You're the first one I ever heard mention this, and it stuck with my design ever since. Congrats on being on of the most motivational inspirations in quest design I've ever had in the past. To your 2nd point, this is why I feel good telegraphing is important. Take Dark Souls for instance, Bosses take huge long winded swings, they are swings you see coming, and they are timed in such a way where you can see it coming. I've been explaining to Moosh recently when it comes to him designing my bosses, I feel visual and audio cues are extremely important to boss design for the very reason you just gave. Before a boss shoots a fireball, there should be a visual flash. But most of the time, Zelda Classic enemies suck at this and not every enemy can script, so I feel these are limitations we've all grown accustomed too thanks to the engine.
Personally I'd say you should probably be able to do each room without taking damage. That said, if your only enemy in the room is an 8-heart one and is kind of hard to dodge (for example), that's still not entirely fair.
I'd almost argue that it's better to avoid even using enemies that's hard to dodge, especially when they are hard to attack. There is a reason why people hate flying types (especially digdogger children). When I have these types of enemies (which I must because my screen design doesn't give much room for walking enemies), I develop very quick ways to dispatch them quickly. Arrows and Cane of Byrna destroys enemies with annoying movement patterns (like in a single hit).
It depends on how much health you have. I generally don't think mandatory damage of any kind is good, but if it only shaves off like 1/128th of your health, who cares? Then the next question would be "well, is it worth it to have it damage the player at all?"
Games where you die in one hit obviously can't have mandatory damage. These games are really, really hard a lot of the time. I'm thinking Super Meat Boy, and Celeste to name a few.
I guess my pretentious long winded point is basically, no, mandatory damage is not okay.
Games that have it feel cheap imo, and there are many examples of well designed hard games that either don't have it, or are based around only having one hit point.
EDIT: For what I'm saying, I'm not counting optionally tanking stuff like floor spikes to skip stuff as mandatory damage. I'm talking about explicitly mandatory damage along the critical path.
EDIT 2: I'll mention this too. Mario games are often based around two, or one hit points. If you have mandatory damage to get Mario small to do the following area, I think that is okay, if that makes sense.
Health shaving kinda sucks too, anybody remember the spike path rooms from Souls of Wisdom? Or just foolish spike floor rooms in general? It's not only the damage, but the knock back that annoys people. So even if it's a fraction of your health, nobody wants to be knocked around by stupid annoying little enemies that does small fractions of damage. I hope that makes any sense. In a game like turned based RPG, mandatory damage clearly is part of the gameplay experience, it's literally what makes the game. But from almost every other genre, I don't agree even small necessary damage is good unless we take Orithan's point below.
"No damage" by itself is a poor design philosophy because damage is just one of many elements of the game.
In most cases, it is a step in the right direction but it still does not resolve situations where a fight my be poorly tuned. A good example of stuff you can do damageless but is not exactly fair is the infamous Mecha Dragon fight in Mega Man 2. He is fairly easy to take down damageless with consistency but his sprite flickering combined with the terrible knockback from his fireballs and contact with the dragon itself being instant death makes for a lame and frustrating boss fight.
Mandatory damage is fine if it brings interesting situations beyond "lets do this at low health.". In Super Mario Maker, courses may be tightly designed around Small Mario or restricting the use of specific powerups to specific locations. Mandatory damage is the main way to enforce this after the player has been given powerups - some obstacles are impossible when not Small Mario and some courses would easily be cheesed if you say kept a Fire Flower after a certain point.
Your idea of mandatory damage being fair under the circumstances of Mario Maker is profounding. That said, I feel Mario Maker is a very hacky kind of game. There's hardly anything about Mario Maker that acts like an actual video game, and I feel exploits are more of the gameplay experience than actual gameplay. I've been criticized relentlessly for not using the infinite checkpoint exploit in red coin levels. I find it dumb. But that's my lack of understanding of Mario Maker. So it is a very good argument for mandatory damage for those types of games, but I feel it's very limited to that genre, and I can't see many other games benefiting from mandatory damage unless it's stuff like Mother Brain zapping you to near death for thematic effect.
I agree with your issue on the dragon, and yes, I do agree now from all the arguments above that it's so easy to make a "no dmg" level that's still bullshit in design and completely not fair. Which is why I stand towards my argument that good telegraphing and level communication is important too. But lots of time people ignore all these things, and I wonder, is this on the player or the level designer if the player decides to ignore everything the designer has put down to communicate the design intent. Perhaps, it was just bad design in the first place, and no matter how you communicate it, the design should have never been made in the first place.
As you can tell, lots of this now confuses me and it's been confusing me since playing Mario Maker. Some of my most hard worked levels are polarized and I done everything to make them as fair and well communicated as possible, but the argument seems to be "You use this type of enemy that's forbidden, you go against this kind of trick that everybody else does" and it all starts to sound like conformity at this point. :/