Like all software projects, there are big error bars on all time estimates; it could take X hours or 0.5X hours or 2X hours, even without scope changes. With scope changes, all bets are off. The deal you strike with the client makes this clear - you estimate X hours, but you can bill them anything from 0.5X hours to 2X hours.
If you assign one competent engineer to the project, they'll bill X hours.
If you assign two competent engineers to the project, they'll each bill 0.55X hours for a total of 1.1X hours billed (the extra 0.1X is due to communications overhead)
But if you assign one competent engineer and one incompetent engineer, the competent engineer will bill 0.8X hours completing the project and the incompetent engineer will bill 0.8X hours - for a total of 1.6X hours billed.
In other words, if a project has one competent engineer, adding a competent engineer adds 0.1X to revenue but adding an incompetent engineer adds 0.6X to revenue.
How do you suppose these incentives work out in practice?
Accenture played this game quite well, made for some very unfun working environments for friends of mine. I was lucky enough to work at places that didn't have the big contracting companies when I was doing consulting.
It depends on what track you choose and what projects you get on, amongst many other things. There are plenty of talented people (at least to begin with) but they tend to get masked by people who would be better suited as contestants on the apprentice.
If you go into consulting and you're even vaguely technical (can write simple software) then you will be very frustrated and will probably end up teaching the start group courses. If you're happy to have your non-technical manager take credit for your work then go for it. Solutions is more technical but doesn't pay as well.
If you're the sort of person that reads HN (which you obviously are) then it is unlikely to be a good cultural fit for you.
Swombat also has experience but I don't know if he'll chip in.