The ones I've been around, and I'm rather new at this, you go into C axis mode via M code, then it programs via call letter C in degrees from there. When not in C axis mode, it responds to the spindle S command.
There are also different interpolation modes. Polar coordinate and cylindrical are the most common.
Polar is for working on the face of the part, ie. milling features that are not on center line. Basically you program as if you were looking at the end of the part straight on program just like on a mill except you substitute C for Y.
Cylindrical is for working around the diameter of a part, ie engraving on the OD. It's a little harder to explain but you take the profile you want to mill and unroll it so that it's flat on a cartesian plane. The Z axis is vertical and the C axis is horizontal.
Polar is very handy but cylindrical is easy enough to duplicate in normal C axis mode. On Fanuc controls the feed rate in normal C-axis mode is specified in degrees per min. Makes it interesting when you mix C moves with linear X or Z moves, makes for lots of F changes.
I would guess there are as many ways to program it as there are machine builders.
You may also need to switch between planes (G17, G18, G19) for your G02s and G03s to work. Basically you have to tell the control which plane its supposed to use for interpolation.
Remember too that some FANUC's with conversational mode let you treat the end of the part with XY. So it's polar coordinates, but you program in XY not XC at least from what I read thats how I understand it.
And for many common operations, like making Hexagon flats, on newer controls, you can just describe the feature and the control will G code it for you.
I think that's a long winded way of saying at least some conversational programs have decent support for C-axis tasks. I don't know if all do.
Yes, there is a home position. Most newer C-axis lathes have absolute encoders in the spindles. On Mori Seiki lathes, M45/M46 engages/disengages the C-axis. "G00 C0" homes the axis.
The work offset table allows you to store C-axis offsets alongside the X, Y, Z, and B axis offsets.
The one I played with you don't have to home the C axis. It automatically knew the position. On my friends' Kia, you call the C axis into action then go into a polar mode via a G12.1 (Polar Interpolation On) and Polar Off with G13.1
This is as much as I know.