I really don't understand why you want to try to run two copies of the same wallet. The example I gave is
just one example of how and why you might experience 'weird behaviour'.
This client is not designed to be running multiple copies simultaneously. You won't hurt the network or anyone else, but you most likely will create a mess for yourself, and unless you understand all the inner workings and are very careful, you will probably eventually end up permanently losing some bitcoins.
Depending on what you are trying to do, you might find that you can accomplish it better with an Armory or Electrum wallet. You also may want to look into using a web based wallet like
https://blockchain.info/walletSo what you're saying is there's a pool of limited ''hidden'' addresses the Bitcoin desktop client uses to store whatever's left from whatever someone paid the client at any given moment of time.
It sounds like you probably understood that part.
How many hidden addresses are in the pool, btw?
There are two pools of hidden addresses:
The addresses that are currently being used to hold the change from previous transactions are hidden. The quantity of addresses hidden in this way will be less than (or equal to) the total number of outgoing transactions.
There is also a pool of hidden unused addresses. This is the list of addresses that the client chooses from whenever it needs a new address. So if you click the "New Address" button in the user interface of the wallet, it gets the address from this hidden pool. If it needs a new address to store the change from a transaction, it also gets that address from this pool. The size of this hidden pool is configurable, but the default is 100 addresses. Anytime the client removes an address from this pool, it randomly generates a new address and adds it to the pool as a replacement.
This means that if you make two copies of your wallet and run both at the same time, and then start clicking on the "New Address" button in both copies simultaneously, the first 100 addresses that you receive will be identical in both wallets, but when you click the button the 101st time, you will get a different address in each copy of the wallet.
You're saying that at any given moment in time, a wallet has a limited amount of hidden addresses, and that if we spend from a copy of the wallet, the other copy won't see the hidden address and the cash that was left over. But that it will only apply if the number of hidden addresses have gone beyond the ones available the time the cold wallet was created.
That sounds about right. Hard to tell by the way you phrased it, but I think you've got it right.
Does this flaw in any way apply to visible addresses?
This is not a flaw. This is a feature. It is intentionally designed this way so that you don't have to store a fresh backup of your wallet everytime you send a transaction or click "New Address". If you don't like the way this is designed, you might prefer one of the other bitcoin wallets I mentioned.
Say you stored a cold copy of the wallet
"Cold copy" might not mean what you think it does. I'll need you to explain a bit better, but I'll do the best I can to answer your next few questions.
. . . and only received outputs into the online wallet. As there are only new visible addresses, the kind we can see on the desktop client, and the client has only been receiving outputs, not spending anything, will there be no problem if the cold wallet is then used on another operating system with another desktop client, not to start combining the use of the two as you say that'd be insecure, but just to show up on the cold wallet the outputs received by the other wallet and to never use the other wallet again?
The "new visible addresses" come from the hidden pool. When you click "New Address" on one copy of the wallet, the other wallet doesn't know that you've done this, so the address won't show up in the "visible address" list in "Receive Coins" on the other wallet. Depending on how many addresses you've used so far, the other wallet
might see the bitcoins when they are sent because the "new address" in the first wallet exists in the hidden address pool of the other wallet. If it does see the bitcoins, it won't know if those were change or not, so I don't think it will show the address in the "Receive Coins" tab of the wallet (if you are lucky it will see the received coins as change and include them in the balance while keeping the address hidden from you).
Can a bitcoin-qt crash a computer because it's somehow detecting another bitcoin-qt on the same NAT
I wouldn't expect that.
or something the client does overloads the RAM or the block updates are hitting a sensitive part of the hard drive that may be half broken?
It is pretty well written and robust, but certainly there is always potential for any program to have issues if it requires more RAM than is available or is running on a hard drive that may be half broken. It would be a good idea to create a backup of the wallet on a regular schedule and keep the last several backups in case a backup is damaged.
If I haven't spent any outputs, just putting the wallet dat in another computer will bring no issues?
Just "putting" it there, No. Using it there, yes.
What about if the client with this said wallet is crashing and hasn't seen a recent version of the blockchain update, will it still update the new bitcoin-qt on the new pc with its balance?
That depends on how recent the copy on the new PC is. If it is a recent enough copy, it will still have enough addresses in the address pool that match the original wallet, so as long as this copy of the wallet has access to the blockchain your balance will show up there.