Text is not a rectangle with a texture (although it actually is), that would be misleading to conventional fill and stroke functions, which would behave like this is a rectangle, and not stroke/fill the actual text.
Text is handled separately, and is regarded as a primitive geometry.
Handle alignment, shaping, styling, sizing, fonts, hinting, option, all within a big record which can be translated to what harfbuzz understands.
functions like text should be incredibly simple (in contrast) however.
text :: Font -> String -> Shape