So far as I know, the coding of new furniture items is out of the question (unless you happen to be some insane hacker who can not only crack into the guts of DF, but can also understand Toady's mutant-spaghetti code).
Actually....
While I'm not even going to get into the files and try to decode what Toady has done. It is possible to assign different isometric sprites to similar or same items made out of different materials.
Stonesense has done it.
Wooden chairs have different sprites than rock thrones, which have different sprites than metal thrones.... Thus, A, B, and C, right there....
I'm not even saying you'd have to use chairs to assign the sprite materials to based on material composition. I'd imagine you could do it with just about anything, though preassigned codded item functionality would be a pain.
Take Items no one ordinarily makes out of wood: Statues, armor stands and weapon racks. Assign each a sprite for "couch A, B or C" in stonesense.
Your Dwarves couldn't actually sit on it, but it would be there in the isometric visualizer. Ironically, the workshop sprite solution would solve problem three in a strange way.
Take a look at this:
http://www.bay12games.com/forum/index.php?topic=43260.0Heck if I really wanted to, I could take a workshop i don't use like the Ashery and make that have a sprite that's a couch.... The worst thing here is making the actual sprite.
_________________________________
Facing, on the other hand, is something the game doesn't even have. Other than using different workshop sprites for different directional facing couches, I've no clue.