Following doc comments:
https://github.com/stellar/rs-soroban-sdk/blob/main/soroban-sdk/src/vec.rs#L77-L80
Values are stored in the environment and are available to contract through the functions defined on Vec. Values stored in the Vec are transmitted to the environment as [Val]s, and when retrieved from the Vec are transmitted back and converted from [Val] back into their type.
Can someone explain me the rationale here?