Well, currently (in Win32) if you create a canvas and free it, the graphics context assigned to it is not freed. So, if you repeatedly open and close a window that has a canvas using the create/destroy method, memory consumption will rise and rise. Posted a bug report about this in the relevant forum a couple of days ago, but there's been no official response about it yet (understandably, I know).
If that's fixed, definitely go with create/destroy, I think.
If that's fixed, definitely go with create/destroy, I think.