The article's suggestion means eating up 50G of allocation straight away. I don't think needing to estimate your compressed allocation up front is an easier solution at all. Normally with directories you use thin provisioning pulling from the whole device's free space; thick provisioning for a directory is not a path for easier reduce space consumption.
On top of each vdev (tank) you can make datasets (tank/logs) and mount those wherever
Each of these datasets can have their own options set. So yeah it's basically the same thing as btrfs?
You could specify a dataset that mounts to a specific (sub)directory. Or even have a file-backed pool just like the example.