Either of the two workflows you mention are easily doable with dotCloud. Building locally (as you do today) should be fine: the dotCloud command line client uses git or hg (whichever you're using) by default, but can fall back to rsync if you want to push untracked changes[1].
In the long run, though, it's probably better to include the Brunch step as part of your build. With the new version of the dotCloud Python service[2], you can hack the build script[3] to do whatever you want. For simple build tasks, there's one version of Node already installed, but you could also poach part of the Node build script[4] to install another version, if you need it.
---
[1]: http://docs.dotcloud.com/guides/git-hg/#pushing-uncomitted-c...
[2]: https://github.com/dotcloud/python-on-dotcloud
[3]: https://github.com/dotcloud/python-on-dotcloud/blob/master/p...
[4]: https://github.com/dotcloud/node-on-dotcloud/blob/master/nod...