How should I balance Features and Installation Profile in a Code Driven Development workflow?
I've recently started using the Features module as a deployment system, as described in this presentation on features deployment. Assuming your using a similar setup with hook_update_N, features has one clear advantage that I'm aware of: it's aware of any changes that are not in code. This makes it a fair bit easier to track changes to (for example) views and content types, and also allows you to auto-generate the new features code to be committed and deployed.

I'm not overly familiar with installation profiles, but from the link you've provided it doesn't look like they provide this functionality. However it might be a case of use whichever suits you the best.

Edit: rethought response.