When Vasil HF is here with the new plutus version, can we only reference unspent transaction outputs or even spent ones? Is there some documentation on these newly added functions? Preferably haddock documentation.
The referencing of UTxO is decribed in the CIP 31 (1). There it is stated that
Referencing an output still requires the output to be presented as part of the transaction and be unspent, so determinism is preserved.
So no, referencing already spend outputs is not possible to preserve determinism.
On the topic on how these referenced utxo's will be used see the source (2).