This interesting, I have never seen setcap. It seems it doesn't work with scripts (ruby, python) and if you are using JVM/mono/beam you will need to setcap the whole VM, but a very cool solution for a language like Go with binaries!
Another option would be to drop privileges at runtime.
virtualenvs don't create a new interpreter, they just fudge the python path?
Definitely not recommended on interpreted languages (although we use it all the time on our go apps).