Creating a transaction requires approximately 10 bytes to start with. Then, each unspent output that you use as an input to fund the transaction adds approximately 149 bytes. Each new unspent output that you create (each recipient that you send to) adds 34 bytes.
So if we send to multiple addresses one by one, each additional address will add ~10 bytes? For example, if we pack 100 receiving addresses into one transaction, then we can save ~1000 bytes of space?
Also, is there a limit for how large one transaction size can be (in bytes)? Or a limit of total receiving addresses we can include in one transaction?