Danny just upgraded underscore recently, so it is something that gets upgraded in HQ.  If there's any risk that an upgrade to underscore introduces breaking changes then vellum should either specify an explicitly versioned dependency on underscore which the underscore of CommCare HQ needs to satisfy, or provide an included version of underscore.  You could always make a `{% block underscore %}` if you don't want to include it twice.

In reality it looks like new underscore versions don't usually introduce breaking changes (http://underscorejs.org/#changelog), but do you want to wait until one does and someone upgrades the HQ version and it breaks some feature of Vellum to find out?

Being standalone itself isn't the goal, it's an effect of maximum modularity, but modularity can be achieved incrementally.

I'm not going to get into an argument if you don't want to do this, I'm just telling you what I would do and trying to explain my thought process for being anal about explicitly specifying dependencies.