I am new to this..but we can redeploy contract multiple times, only issue will be u will not be able to remove the old contract you deployed..it will still be there. My only concern is where the previous deployed contract go..as there will be lot of unused contracts..if it continues then a single node will contain many unused contracts..
Yes, the smart contract already deployed, unless destroyed using 'selfdestruct', will stay forever on the blockchain. It's by design.
Every time you interact with the blockchain your nonce (number only used once) attached to your wallet increases. That number is used when deploying a smart contract so even if you deploy the same smart contract, with the same arguments, twice in a row, those 2 contracts won't have the same address.
And the problem of node size is being slowly solved thanks to sharding and other methods.
Hope this helps