Yeah, as @Archkiwi already mentioned, we’re working on the pool for Astroport whose design is exactly what @larry described. The gist of it is that for each operation the conversion ratio is queried, so yes, the ratio is automatically adjusted naturally.
The main and very important difference here is that the query is made not to the oracle but to the Lido Hub contract since both the pool smart contract and Hub are placed on the same chain (we still can refer to it as “oracle” but the fully on-chain one). There is no way of using Chainlink oracle in this case. Chainlink oracle (or any other price feed) is ideally based on the market price. Adjusting the market price based on the market price is not the issue we are trying to solve. What we are trying to make is to adjust the market price closer to the real asset exchange rate and the real exchange rate in the stLuna case can be got from Lido Hub only. So we’re not blocked on the Chainlink feed deployment, and all necessary information is already available on-chain.
Talking about the pool’s usage for other assets with similar behavior: it’s definitely possible to use that pool for them. But since the query interface for getting the real exchange rate is different for each pair, the pool implementation either needs to be modified for each pair (only a single place where the query is made) or the pool can be designed the way where it uses a proxy contract that converts the query from the common interface to the specific one.
The design decision here is mostly on the Astroport team I think.