In this discussion it hardly matters who was on the right side of the overall conflict, however, in this specific engagement: the Iranians shooting at the Americans was reasonable and should not have surprised anybody; the Americans shooting back was reasonable and should not have surprised anybody. The only real problem was the American shooting at the airliner.
The Vincennes watchstanders tried hailing the aircraft two times, but didn't get a response. But even that didn't really help resolve the issue; was it an hostile aircraft maintaining radio silence or a confused civilian airliner? They used a frequency a civilian airliner could have picked up, but it turns out there were several other frequencies the airliner could have been monitoring as well, and besides... how was the Iran Air 655 pilot to know Vincennes was ever referring to them?
Vincennes was having to make a hail to the effect of "unidentified aircraft south of Bandar abbas with speed 350 knots, heading 210, you are on a hostile course and this warship will take defensive measures". What civilian airliner pilot would think that applied to them (though Vincennes quoted speed-over-ground and not the airspeed the pilot would have been looking at).
So there were tons of 'Final Destination'-esque problems that occurred here, but foremost of all was that the watchteam (CO and CIC watchstanders both) determined early based on a single misread indication that they were being attacked, and the evidence they had available to them after that could easily be construed to support that determination.
The entire operation (and several other operations close in time in the Persian Gulf) was the US administration choosing to directly intervene in support of Iraq in the war with Iran; the limited scope of the intervention was a matter of sell it, above all to US domestic audiences, as something other than the direct support for Iraq that it was.
And if the U.S. wanted to re-enact a modern form of the old "Cash and Carry" plan they imposed on the U.K. before Pearl Harbor, then they were within their rights to do so as well as long as they obeyed UNCLOS.
The additional U.S. direct intervention on the side of Iraq (e.g. weapons, training) has been pretty conclusively demonstrated to have been stupid and unhelpful with regard to geopolitical stability in the Middle East (several times over, by now).
But in any event, if Iran had really wanted to blockade Kuwait then they should have declared war and blockaded Kuwait (it doesn't exactly have a wide coastline), instead of mining international waters. At least then they would have the moral high ground should the U.S. still have decided to intervene.