It really depends on the project, at least in my own experience. There are situations where I'm not using a CI server and we're just pushing a new test version to the customer manually. In that scenario, we do increment both the bundle version and the last number (build) of the marketing version so that we know which build the customer is talking about when reporting bugs before it goes into production.

I agree that an implementation with full control over how the version is being incremented would be a way better option. To be honest I haven't looked around much for such a gem, maybe there already is something that does exactly that. I'll search the net and see if I can find something. It doesn't make sense to reinvent the wheel ;)