To break the fourth wall a bit: there are a lot of "grandfathered" assumptions about cloaking technology that writers kept going long after the reasons for them had been forgotten. If you ignore those original assumptions or at least remember what they were based on, some of these problems go away.
For example:
1) Can't fire while cloaked: This is a problem of energy expenditure necessary for maintaining the cloak. Shields and warp drive would be disabled for the same reason, there's just not enough power to use both at the same time. This limitation would make only certain applications of the cloaking device practical to begin with; you would have to decloak in order to go anywhere, and moving while cloaked would be very slow and tedious so you would only ever do it if you were "lurking" or trying to ambush someone.
It also stands to reason that certain types of torpedoes with a cold-launch system would work just fine while under cloak. If you don't have to power the weapons and the weapons launch themselves, that would reduce your weapons range but give you the ability to attack while hidden. Which brings us to:
2) Sensors: Kirk mentions in "Balance of Terror" that the invisibility screen might work both ways. This is something that comes up in a lot of WRITTEN science fiction, where an invisibility screen that keeps someone from detecting you also prevents electronic signals from reaching you and blinds most if not all of your sensors. So a cloaked vessel would have limited sensor capability and would probably only be able to see what's going on by projecting some small part of itself outside the cloaking field (e.g. Klaa's periscope). Apart from the fact that this basically perfects the "u-boat" analogy that the cloaking device originally was, it also leads us to:
3) Revolutions: The nuclear reactor changed the nature of submarine warfare in a lot of ways, but it had the ironic effect of making submarines easier to detect since nuclear reactors tend to be noisier and give off a lot of waste heat under water. In the same sense, a new cloaking device powerful enough to hide something as big as a D'Deridex or a battlecruiser might be detectable in other ways, making it impractical in theaters were smaller vessels would excel. You could, in other words, cloak the Enterprise or the Yamato, but a ship that size running cloaked would still be visible from about 1000km away to anyone with modern sensors, and a ship that size probably won't let another ship get that close in the first place without challenging it first. Smaller vessels, which are almost always at a disadvantage, would be better off slinking away when they get in trouble... but Federation ships on that scale never go anywhere dangerous in the first place, so why would they need to?