Let's see if I can reduce some confusion.
First, Sam is right: when you write to ITPC, in at least some cases, that actually goes to XMP. XMP is a special area of a file - or a sidecar file for formats that do not support XMP directly. The XMP area can contain copies of the EXIF and IPTC data as well as stuff that lives *only* in XMP. And of the stuff that lives only in XMP, some of it is at least semi-standardized, but much of it is left open for individual applications to define however they want.
When you write IPTC to a file, ACDSee will write it to the regular IPTC area of the file if it exists and can be written to (eg, most JPEG files). If the format does not support writing to IPTC (like most proprietry RAW formats), then ACDSee write the IPTC data to the XMP area, and other applications can definitely see and use that information as if it were regular IPTC info. If a file has a regular IPTC area *and* and XMP area, ACDSee will write IPTC data to both areas, but it won't normally *create* an XMP area that doesn't already exist if the ITPC area will do.
That's why I said if you want your metadata in IPTC - which is to say, if you want it in a place where other applications know how to find it - then you need to use Batch Set Information. True, for proprietary RAW files or other formats that already contain an XMP area, that IPTC info actually gets written to XMP, but it gets written *as IPTC info*, meaning any modern IPTC-aware application should see it as if it were ordinary IPTC info.
If you don't care about having your metadata in IPTC format (and thus readily available to other programs), you can use Embed Metadata to write you metadata to XMP. It won't be in IPTC format, but in a proprietary ACDSee format. Note however that XMP is just plain text. So even if your other applications don't directly understand the meaning of the info ACDSee writes there, it can certainly see it. It would see there is something called an "ACDSee keyword" and that it's value is "animals, cats, pets". it would just have no idea this field had anything to do with any other type of keywords.
With that background, let me try to answer some of the specific questions:
1. If everything in ACDSee database is in XMP?
The database normally contains the fields listed on the Database pane of the Properties window as well as information taken from EXIF and IPTC. *If* you run the embed metadata operation, then all the fields from the Database pane of the Properties are written to XMP. I think the EXIF and IPTC info that is also present in the ACDSee database is copied to XMP also, at least sometimes, but it may not always be, nor need it be, because that info was already in the file.
1a. If not, I don't want to use it b/c it can easily lead to inconsistent data.
ACDSee normally keeps track of which files have had their metadata modified since the last embed operation. So any time you run the embed operation, it will bring all your files up to date,
1b. If it does, how do I make it write metadata in existing database to XMP.
The info is written when you run Database>Embed Metadata, or on program exit if you have left the option to do that enabled. It first displays a dialog indicating it is figuring out which files need to have their metadata embedded, then it does the embedding. The first you do this, it may take a long time, as basically *everything* needs to be embedded. Once that's done, though, subsequent operations should be much faster - at least in theory.
1c. I'd only want XMP in the image file itself, not a side file. Is this possible?
ACDSee will always write the data to the file itself if it knows how - and it knows how for JPEG, TIFF, DNG, and perhaps some other formats. But there are other formats that ACDSee cannot write directly to the file. These include proprietary RAW formats, but also things like ordinary text files, probably most sound formats, proprietary formats used by documents from other applications, etc. For these formats, ACDSee has no choice but the write sidecars if it is to write anything at all. There is an options to control whether or not it creates sidecars for these or whether it just skips the embed operation for these formats. Note that even if you set the option to *not* create sidecars for those formats, it will still create sidecars for proprietary RAW files. The rationale being, it was creating those sidecars anyhow any time you wrote EXIF or IPTC info or did RAW processing, so adding the embedded db info isn't creating sidecars it wasn't already creating.