They are both as powerful, but buildEnv is treacherous: if you pass a
package which depends on another python (for example the one of unstable
when you are on stable) it will be *silently* dropped, leading to hair
pulling.
Use case:
override neovim from unstable, but still keep stable's pythonPackages.