A greater than, say, 1% base CPU load from an otherwise idle application would indicate that it's doing some busy waiting somewhere... in my Activity Monitor, I don't see too many processes doing that, so just using an ObjC framework doesn't seem to be the guilty part. By the way, very old versions of VisualWorks used to be bad in that way, but not any more; so there is something that can be done about it.
if I'm correct there are some busy waiting process in the VM instead of an event based + semaphore architecture. We already removed some of the polling behavior at the image level but there are probably more and there was a discussion in the VM mailing list. Now I do not know the conclusion.
A large virtual memory working set wouldn't help either for power efficiency, though with today's RAM sizes it's probably less important.