It is what you say the function doesn't actually perform the RLP encoding. The function is just transform a transaction receipt into a new list contain:
- 0: The constant 0
- Ru: the cumulative gas
- Rb: Bloom filter composed
- Rl: the set of logs
This function is just like what they call it prepare to be transform into RLP-serialize. If you look up ahead at this function:
Ht ≡ TRIE({∀i < ||BT||, i ∈ N : p(i, LT (BT[i]))})
p(k, v) ≡ (RLP(k), RLP(v))
Now you can easily understand that LT(BT[i]) mean the prepare for the RLP-serialize for each receipt in BT and then the function p use RLP-encode on it.
If they didn't define that earlier the function will be a lot uglier than it is (which is already very ugly).