Let's say we have an ETH/USD pair. Normally, I would expect that if more people are buying ETH than selling ETH, the price of the pair goes up. This is because there is more demand for ETH, but the supply (the people selling) is less, so they can charge more USD per ETH.
However, on uniswap, it appears to be the exact opposite. Due to the constant product formula, if more people are buying ETH, there is now excess ETH in the pool and a shortage of USD in the pool, and so the price of the pair goes down so that this can be rebalanced.
Am I right in what I am saying here, that Uniswap's supply and demand system is completely opposite to other exchanges? Does this mean that arbitrage between other exchanges is the only thing that's actually keeping the price right?
Does the constant product formula mean that the overall/average price of a pair remains constant? Does this mean the only thing that can actually change the overall/average price is by changing the constant in the constant product formula? And this is achieved from someone adding a different ratio of the assets to the liquidity pool?
Does this all mean that if no arbitrage occurred (hypothetically), the average price of every pair would remain constant?