It takes up 0% extra RAM if nothing is being swapped. And if anything needs to be swapped, it’s in a compressed format (still in RAM), to make room for other data/services that require RAM.
Therefor, nothing is being preallocated in RAM. Whatever you set the zram “size” to, it always starts at 0%, and can grow/shrink dynamically, based on if things are being “swapped” in or out.
Think of it as dynamic swap that stays in RAM (compressed), where nothing is swapped to disk.