Well, so you can use the attr method to return a plain javascript object, and then leverage model stores to maintain a set of instances. For example, you could do foo.attr(), modify it, then do Foo.parseModel(bar), and it'll upsert changes, and return the appropriate instance, or create one.
Anyway, what is your use case here? Generally you can wrap external plugins to work with CanJS pretty easily.