I recognise the situation but I've always considered it part of the gameplay. I mean, how else would you play when the enemies are tough?

In nearly any shooter you will soon learn that if you run into an open space carelessly you're likely to trigger lots of monsters/enemies at once and that means you're going to suffer from it. How do real-life special forces infiltrate a building with armed enemies? Very carefully, and with lots of cover.

Similarly, in a game you want to kill the enemies in small batches, ideally one by one, to minimise the risk of getting too much damage. And isn't the point of an FPS to map the whole level, corner by corner, without taking too much damage and successfully killing enemies until none are left?

You can balance taking damage with trying to speed up the game if you don't feel like going slow and secure. And you will learn places where it is worth taking a bit of damage to obtain more benefits. That's what you will be continuously balancing as a player, depending on your mood and how well you've been playing so far, and that's one element to it.

Playing the level the first time generally means slow and conservative gameplay. Further sessions in the same level will obviously make the player make more educated tactical choices. A good level will only reveal itself over multiple rounds of gameplay, and ultimately remain a good level.

In fact, tricks to prevent the player from finding cover by doorways or other obstacles are usually just irritating. You know it's going to be a hard battle in that big room ahead, and you know you can't back out to relative safety after dropping down to the lower level from that higher-level balcony you're supposed to use to enter the room. In all battles you want to have, at your disposal, some nearby place that you can retreat to, if you want, if you're low on armour or otherwise beaten down. If you're doing well you are likely to be impatient enough to stick with the safe routine by the doorway. This will let the player balance how conservatively he wants to play at any given time.

It's good to force the player to move around, though. Sprinkling ammo and health-ups around the level in small batches helps. A traditional scheme is to make the player fight for optional aids: going down a passage to get the big health pack or more ammo also means risking hitpoints and using nearly as much existing ammo to compensate. If you play good, you'll be rewarded with more than you had before. If you play bad, you just make things worse without getting any further in the level. But this shouldn't be used as an excuse to eradicate the locations of relative safety such as doorways that are really handy indeed when you need them.

Instead of forcing the player to fight without cover your level is much better off by being of non-linear nature in the first place, allowing the player to roam to any direction and choosing which sections to take out first and which accompanying enemies to trigger in each location, because that also gives enemies some routes to wander behind the player's back. Some of the enemies can be made to hear fighting and start finding their way to the player while others can be kept to wait until they see the player. The unscripted arrival of extra enemies wandering about will make the eventual game dynamic much more random and convoluted, and opens more choices for the player to make. For example, "go through the easy wing to find yourself in more trouble at some point later" vs "start taking the hard enemies down first with less ammo to avoid the level collapsing into a hellhole later".

Any level should try to maximize the player's ability to balance between different tactics. Sometimes the player wants to finish off quickly, sometimes he wants to kill each and every enemy and collect all power-ups and secrets. A level can become totally different based on how it's played, and a good level doesn't force that "how".