Now if you wanted to fly say a Liberian flag, sure you have to follow Liberian rules, which state no firearms on civilian vessels.
Ah, no. It doesn't matter what flag you fly, civilian vessels may not have weapons. Otherwise they are a valid target of war. That is stated explicitly in an international treaty called "the law of the sea".
Who signed this treaty and who enforces its rules?
Edit: I wikied this and it seems the USA did not bother to sign... So Americans can do what they want as long as teh UN does not come down on them?
My landlord is a merchant mariner, and I asked him about this. His reply was that Americans can and do carry, which is why pirates don't attack American vessels. (Probably also because the U.S. navy would kick their asses pretty quickly.)