using a canvas to pre-render your items is a good idea, however it's not always the best choice. If your items are complex (with gradient, shadows and visual effect), so yes it will be good. But if your items are simple (images, polygons, simple bezier curves, ...), your framerate won't increase but can decrease (because of the drawImage). It's then better to render in realtime.
From my experiments, you won't lose performance by using several small canvas (may be few memory) but it can be easier to manage than a big canvas (like an object oriented scene). If your items change sometimes, you are sure to easily manage the size of your temporary canvases.
Hope this help.