I've been building BASIC32, a retro BASIC interpreter for microcontrollers so I can flash it once and easily create lots of new projects.
What you give up with the authors approach is "read". The screen becomes write-only. There are only a few functions that require reads: getting a pixels current color and doing operations like flood fills or paints.
Because I was going for the retro feel of BASIC, I wanted to support these, so I opted for a frame buffer. It isn't as technically cool. On the RP2350, it does require low resolution and low bit rates because they often have RAM limited to KB.
If you step-up to the ESP32-S3 variants with 4MB or 8MB of RAM the frame buffer gets much easier.
It foregoes reading, I suspect (but obviously don't know for certain), for the simple reason that (if I remember right) you usually don't ever want to "read" a framebuffer, because reading the framebuffer is asking the graphics device to give you the current value of one or more pixels, and that is way slower than it being rendered to some output device.