The market cap is just the last price multiplied by the number of the asset in existence. There is no restriction on last price for either SP500 or bitcoin.
It can. The misconception that people generally have is believing that purchasing securities is a zero-sum game when in fact it's generally a positive sum game. When you buy a bitcoin (or security), the money you spent doesn't disappear so the amount of bitcoins and fiat in circulation do not change as a result of this trade. There's nothing stopping a bitcoin from being worth a million dollars or a dollar being worth a million bitcoins, it's just a function of supply and demand.