Is it reasonable decent practice to run varnish on the same host as the django installation it's fronting for? I assume you'd have to configure django so that it leaves enough room in RAM for however much you've allocated to varnish. Is that ok to manage, or is it better to run varnish on its own separate host?
That should work just fine - what Varnish needs most is to have its RAM left alone.
If you can reliably keep Apache and the Django app low enough in RAM that Varnish isn't getting its space swapped, then go for it.
Keeping things reliable and predictable is the key - for instance, if some load condition pushes the application's RAM usage up, then Varnish might get slowed down by swapping just when you need it most. Because of this potential for interference, I'd take separate systems in most cases, but you should have no problems if your application is well-behaved.