Does it matter that CDAT is an object-oriented package? How does that affect how I use it?
The short answer: if you do not use CDAT in an object-oriented manner, you'll be extremely limited in what you can do.
With respect to graphics, unlike an interpretive procedural language like IDL, there's not a whole lot you can do via procedure calls. Appending text to a plot, for instance, is not a trivial task: You have to create a text object, set attributes in this text object, then place that object onto a VCS canvas. In IDL this would take only a single procedure call.
Still working more on this...
Notes: This discussion applies to CDAT 3.3.