Ambice canvasu jsou „docela velké“, viz například (neúplný) port Processing do JS: http://processingjs.org. (Např. port generativního Substrate od Jareda Tarbella: http://processingjs.org/learning/custom/substrate)
Největší zádrhel z praktického hlediska je skutečně v tom, že na rozdíl od Flashe (anebo SVG, …) vytvořený grafický prvek není žádný objekt, k němuž lze přistupovat, věšet na něj handlery událostí, příp. ho z canvasu odstranit, atd.
To je hezky vidět i v diskusi na blogu Githubu, kde se mnoho lidí ptá, proč @mojombo nepoužil SVG, resp. Raphael.js. Ten umožňuje daleko smysluplnější práci s grafickými objekty, viz např. http://raphaeljs.com/github/impact.html, výkonnostně ale za Flashem a canvasem (zatím?) strašně pokulhává: http://www.themaninblue.com/writing/perspective/2010/03/22/ (linkováno v diskusi na Githubu). Pro mně osobně (=subjektivně) je práce s Raphael.js balzám. Je to snesitelně rychlé, je to „normální JS programování“ s využitím jQuery/Prototype/Underscore/etc, Firebug funguje jako debugger, …