Das was du suchst sind Features einer deklarativen Sprache, so wie HTML oder SVG.

Canvas ist (meines Wissens nach) das einzige Element in Web Technologien dessen Erscheinungsbild imperativ (d.h. durch das durchlaufen eines Programmes) bestimmt wird.
Deswegen muss beim Canvas, damit das Bild aktualisiert wird, das ganze Programm zum Zeichnen erneut ausgeführt werden.
Das macht das Canvas auf der einen Seite flexibler, dafür aber auch umständlicher.

In dem Sinne würde ich auch sagen, dass SVG für dich wahrscheinlich das richtige ist.
Ansonsten, wenn du vollständig mit Rectangles auskommst, kannst du es auch direkt mit HTML und <div> Elementen probieren. Einfach über CSS 'position: absolute' mit pixel coordinaten und background image für bilder (sogar mit clipping mit background-position). Klappt mittlerweile gut von der Performance.