1) Yes, of course. Ships with "maxItems: 0" should ignore this weapon bonus.
2) There must be a check. If the ship has the "maxStorageSpace:" parameter, then a similar weapon bonus works. If not, the bonus is ignored.
I have plans to use both bonuses in one weapon, or rather in a module that will be used by both landing and cargo ships. Landing ships have only “maxItems:”, cargo ships only “maxStorageSpace:”, and there will be one weapon/module for both classes of ships.
Oh yes, there should be no negative values. Just to avoid mistakes. I won't need negative values, but others may need them. It's up to you.