It depends on a lot, but having done both purely engineering jobs and consultant type of jobs as well, you'll get a much broader variety of tasks by doing consulting. Each customer will undoubtedly have an entirely different set of things they're looking for and ways they want it to be implemented, and on top of that, they'll have different systems they need integrating with.
Depending on the job, it might also entail travel to new places, an expense account for dining (which makes eating nicer a little lighter of a burden), the ability to interact with new people all over the nation, etc.
Another perk is that you drive the development process, within reason. As a vendor developer, you're more easily able to push back on unreasonable development timelines, as far as being able to tell the customer things like "That's impossible," which you would have a harder time saying to your real boss when given a task. Your time is billable, and time spent with a customer is profit to the company. If it's actually going to take you three weeks to build it, then take that long. They don't want you building it in half that time unless you're billing the hours for it anyway.
Conversely, they don't want you to take too long to do things as the customer relationship is sacresanct, of course. But there's less push back on doing things in a reasonable, actual time that managers tend to overlook when your work as a developer is 'overhead', which most pure engineering jobs are at big corporations.
As a developer at a startup it's different obviously, you're talent, not overhead, but the trade off is often your personal life.
There's no golden job, of course, but consulting benefitted me greatly when I did it, and can be a great experience. You'll sacrifice some learning, like working with a close-knit team, the ability to report to the same office every day, but in return you get a larger degree of autonomy and a completely different set of challenges.