When the user provides his tokens to the pool, he receives share tokens. They have underlying value in the XTZ and FA tokens. Trading operations alter this value as well as the proportion of the tokens it represents. Once the user disinvests his tokens and burns his shares, the user's underlying value is calculated based on the current rate and both XTZ and FA tokens are sent to him. Theoretically, if the exchange prices were close to the market price, the rate would grow and the user would withdraw more tokens than he had invested. Alternatively, if there was a significant difference between DEX and external prices, the arbitrageurs could drain the value and potentially cause an impermanent loss.