Not sure, what you mean by "takes the snapshot from zero".
Do you have different subvolumes defined (and mounted) in your BTRFS filesystem for / and /home (plus maybe some more)?
Creating a ro snapshot of a subvolume should be instant. Only if you want to send/receive it somewhere else, should it take time (depending upon the amount of data to be transferred).