The answer to all of your questions except the last one is "yes."
More specifically, there's no penalty for letting dwarves waste their lives as unskilled laborers, so often it's easier to just maintain one or two skilled dwarves for each profession to do what you want and just let everybody else haul. In fact, you don't even have to wait for skilled migrants; when I need somebody of a profession, I just pick somebody who either has a skill in that profession, or if no such person exists, I just pick somebody who has no skills I actually care about and let them train. If a somebody dies, I start training a replacement then; most items aren't so high-priority that an unskilled dwarf can't do them for a while. Only metalworking is an exception, and those guys are kept safe.
It's generally better to have specialists than generalists IMO. There are some labor sets that naturally group - I tend to have furnace operators also burn wood, weaponsmiths do armorsmithing, blacksmiths do metalcrafting, and bonecarvers do leatherworking, for instance - but having, say, a farmer/brewer/cook/miller/thresher/butcher/tanner is inefficient, especially since you probably have more than enough dwarves to have one or more of each of those.
It's usually easier to develop dwarves for the industries you want than to develop industries for the dwarves' skills.
For less-limited resources, I don't usually bother forcing people to skill up using lesser materials. That may be because the least-skilled worker of a given labor in my forts tend to be the most-skilled, though. Metals are basically the only exception, but it's easy to limit your unskilled metalworkers to use less-valuable metals since you define what metal they use. If you really want to do this, though, you could use burrows to keep less-skilled dwarves away from high-value stockpiles.