I've also been tinkering around with concubines, and created mercenaries based off of them. Dwarven soldiers who you can buy as "pets" via trade and embark that start with a selection of weapon skills (never more than what you could normally put in a normal pre-embark dwarf).
There are a few problems I've ran into:
1. They are pets, so they will have "Stray" by their name. Not that big of a deal, really.
2. They can be traded via merchants, and thus will be stuck in cages. Better release them soon, otherwise you'll have a really ticked off dwarf who is hungry and thirsty.
3. I accidentally forgot to set the [NOT_BUTCHERABLE] flag on them. This can easily be remedied.
-------
EDIT: I've also made a quick fix for the batch workshop using economic stone. Go into your reaction_masterwork.txt file, scroll down to the very end, and replace the SLEEP_SET, SLEEP_SET2, LIVING_SET, DINING_SET, TOMB_SET, and STORAGE_SET with this:
[REACTION:SLEEP_SET]
[NAME:make bedroom set]
[BUILDING:FURNITURE:CUSTOM_B]
[REAGENT:A:1:WOOD:NO_SUBTYPE:NONE:NONE]
[REAGENT:B:3:BOULDER:NO_SUBTYPE:NONE:NONE][WORTHLESS_STONE_ONLY]
[PRODUCT:100:1:BED:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:A:NONE]
[PRODUCT:100:1:BOX:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:DOOR:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:CABINET:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[SKILL:MASONRY]
[REACTION:SLEEP_SET2]
[NAME:make fancy bedroom set]
[BUILDING:FURNITURE:CUSTOM_SHIFT_B]
[REAGENT:A:1:WOOD:NO_SUBTYPE:NONE:NONE]
[REAGENT:B:6:BOULDER:NO_SUBTYPE:NONE:NONE][WORTHLESS_STONE_ONLY]
[PRODUCT:100:1:BED:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:A:NONE]
[PRODUCT:100:2:BOX:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:ARMORSTAND:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:WEAPONRACK:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:DOOR:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:CABINET:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[SKILL:MASONRY]
[REACTION:LIVING_SET]
[NAME:make livingroom set]
[BUILDING:FURNITURE:CUSTOM_L]
[REAGENT:B:3:BOULDER:NO_SUBTYPE:NONE:NONE][WORTHLESS_STONE_ONLY]
[PRODUCT:100:1:TABLE:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:CHAIR:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:DOOR:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[SKILL:MASONRY]
[REACTION:DINING_SET]
[NAME:make diningroom set]
[BUILDING:FURNITURE:CUSTOM_D]
[REAGENT:B:6:BOULDER:NO_SUBTYPE:NONE:NONE][WORTHLESS_STONE_ONLY]
[PRODUCT:100:2:TABLE:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:2:CHAIR:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:2:STATUE:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[SKILL:MASONRY]
[REACTION:TOMB_SET]
[NAME:make graveyard set]
[BUILDING:FURNITURE:CUSTOM_G]
[REAGENT:B:5:BOULDER:NO_SUBTYPE:NONE:NONE][WORTHLESS_STONE_ONLY]
[PRODUCT:100:4:COFFIN:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:1:DOOR:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[SKILL:MASONRY]
[REACTION:STORAGE_SET]
[NAME:make storage set]
[BUILDING:FURNITURE:CUSTOM_S]
[REAGENT:B:6:BLOCKS:NO_SUBTYPE:NONE:NONE][WORTHLESS_STONE_ONLY]
[PRODUCT:100:3:BARREL:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[PRODUCT:100:3:BIN:NO_SUBTYPE:GET_MATERIAL_FROM_REAGENT:B:NONE]
[SKILL:MASONRY]
The [WORTHLESS_STONE_ONLY] tag will mean that any stone that is marked as economic will not be used.