There's some definite flaws. The fact that they basically have to move and stop, let the city attack them, and then fire really makes them a pain. Although it is a lot of fun to one-shot walls with a bombard.
That Siege units need 2 MP left to fire isn't, in itself, a problem. I'd argue it's flavourful and makes tactical sense.
The flaw is in the design of the mid-part of the Ranged line, specifically giving all Ranged units other than Slingers and Machine Guns range 2, the same as siege units. Because of that, City Walls get range 2 as well, and can attack the Siege units without a sortie (or a defending Siege weapon inside, which was the only way that cities historically counter-attacked catapults, artillery, etc.)
Make all Ranged units range 1, give them a free initial attack against melee units assaulting them, make City Walls work the same as Ranged units. Now a city defends itself against assaults, but is vulnerable to Siege units, who take time to get into position and set up, but once set up, will eventually cause a breach that makes subsequent melee attacks much more likely to succeed.
While we're at it, adjust the impact of Siege weapons and Rams so they can each only reduce the health of City Walls by 50%, but different 50%'s, so that with both, you can eliminate them entirely. Melee attacks work like Rams, but less effective. Allow City Walls the priority attack that Bombers and Spec Ops get, so that they can target Rams (that's exactly what city defenders did, often effectively without destroying the rest of the army sieging the city).
That should make Siege weapons very useful, but not sufficient. No more "bomb the city to zero health and then walk in". You're still going to need a final assault. You'll need to decide whether to wait until you have Siege weapons in place and they've taken the walls down to 50% to save on your melee troops, or simple charge in and take heavier losses but possibly take the city quicker. Also makes Rams both useful and vulnerable.