Everyone who works in a job he likes is usually more happy than those who had to work in a job they don't like.
So, what about a new set of preferences, related to what the dwarves would like to do? You usually assign them to jobs based only in your needs at the moment, even because you have nothing to worry about. Migrants who already had a profession are reassigned as haulers or at the job you need them to work.
Let's say, "Gimli likes masonry and dislikes fishing and crafting". He would have a happy thought whenever he worked as a mason, maybe he would got a unhappy ("Gimli would like to work as a mason") for doing something different and an extra unhappy thought ("Gimli hates his job!") for working in a job he dislikes.
This would make the professions more important and give a reason to players to not reassign the dwarves at will. The migrants could become more useful too, since you could receive dwarves with professions you need.
The first dwarves and migrants would have profession preferences set as their starting professions, and peasants and children would got random preferences.
I think itīs a good idea. Itīs balanced enough, would add some extra difficult but a very nice ammount of flavour too.
Sorry for my english, I am not a native speaker and seldom write this much.