I'm using CDX, but only the CDXScreen an d CDXSprite class so that I don't have to worry about DirectDraw surface management, or loading bitmaps.
I'm writing an Isometric RPG but I'm not using their CDXIso class because when you move the view port, it only moves in increments of the tile height/width. So I'm writing my own.
Am I cheating by using CDX? No. I think you should know how DirectDraw works before using something that compleately hides it from you. I have dabbled with DirectDraw'a "raw" APIs and I understand the princible, but for now I want to focus on writing game logic, trigger & event handlers, AI, etc. and I don't want to be bothered with pixel pushing... yet.
The other nice thing is that is you plan on porting your game do a non DirectX friendly enviroment, all you have to do write your own class with the same interface, or better, subclass CDX for DirectX games, and use a different library (subclassed) for others.
hope this helps
-OberonZ