Indeed, segregation makes much sense.
I like the idea of running things either on VMs or containers on the same server. This would provide a great learning platform and experience.
I started looking at a segregated NAS setup (+media streaming/transcoding), and FreeNAS looks the way to go. However, the forums say it is much better to run FreeNAS on bare metal rather than in a VM. This NAS would also be a real 'production' level system, while all the other things would initially be more in the 'play/learn/develop' domain. So, clearly these 2 need a separation now, and as other things move from the 'play/learn/develop' domain to production, then I could find the appropriate solutions for separation, security, and the like.
The best option I see at the moment indeed is to setup 2-3 different physical hosts (all headless) - one dedicated completely for FreeNAS (+Plex +MythTV +...) and the other as a Linux server (initial focus on programming, data analysis, email server, web server, and ownCloud).
I think the home automation part might come a bit later, and I might start that off on a Raspberry Pi3.
I'm still reading up on desired FreeNAS hardware configs, and generally see that it should be 2-4 cores with a lot of RAM (12GB+) and of course a lot of physical storage (.TB? 8TB? more?). A Xeon is likely overkill here, and perhaps I could take a motherboard with an LGA 1151 socket, start out with an i3 or i5, and if later needed change it to a i7/Xeon on the same socket?
For the other play Linux server, it seems that I will need to be able to learn and run apps in a few containers, and sooner or later I might need to have some running in VMs. That would imply multiple cores and enough memory (RAM + HDD/SSD) for dedicated applications. Would this best be a Xeon based system (I think Celeron wouldnt be powerful enough here)?