I suppose it's important to keep shapes as vectors so you can perform vector operations on them. If the output was automatically an image that wouldn't work.
Rasterization could happen implicitly when a node is met which can not handle vector data, but I guess the intent is to put user in control of where it happens.