There isn't really a best partition size here, at least not in a way that is relevant to the operating system or the pi and hence that would be on-topic and specific to the pi.
Going off-topic a bit in that sense, I would say the most significant consideration is sparseness. Leave as much room as you can without compromising your other needs. The more room the OS has to play with, the more easily it will be to keep things organized in the most efficient manner. For example, a system with a root filesystem only 25% used will probably perform slightly better over the long term than one used 60%, and they will both perform much better than one used to 90 or 95% capacity (i.e., there is a curve in play performance wise and as you approach 100%, things will become more and more dysfunctional; try to avoid going over 75%).
Another advantage to this is it may spare some wear and tear on spinning disks where partitions really are constrained to specific portions of the disk and it is better to slowly wear out the disk as a whole rather than quickly wear out a small section of it. This logic does not apply to solid state devices, which use virtual addressing to distribute partitions dynamically.
As to how much space might be used by the root fs if you are using it primarily for system/distro software, this depends a lot on how much stuff you want to install. 50-100 GB is not that hard to reach, so setting aside 200-250 GB should be good. You could split that in half and use two partitions if you know how to keep yourself organized but if you have a whole TB to play with it is likely not worth the bother of ending up with 5-10 partitions on one drive for different specific purposes. Use bigger partitions and exploit the directory structure instead, it is more flexible.
Minimally, I would not go smaller than 8-16 GB, although it is certainly possible to run a pi with a root fs < 2 GB (or < 1 GB, or if we really want to put in some time pairing things down, < 1/2 GB, but why bother here?).
Linux and ext4, the default and recommended filesystem type for the root filesystem, are commonly used on terabyte size partitions so that is not an issue. You may or may not want to consider dividing the disk up and using some form of RAID partitioning to add automated data protection by storing it redundantly -- note would mean cutting the available space by 1/2, 3/4, etc. Personally I think it is a waste of time in this case (and may come with its own risks); if you want to redundantly protect your data using the same drive, maintain a back-up partition.
Any ideas about swap partitions?
On a Raspberry Pi, do not bother with anything beyond 2 GB. If you end up using more than that, do yourself a favour and buy something that isn't a pi and has more than 1 GB RAM.