Clearly the GPU has RAM. It’s confirmed in the BIOS and the more I give it, the less RAM I have available for actual programs.
Again, that's the RAM that the system reserves for the GPU operation. This is an OS-level abstraction, not the hardware-level one. How this plays out in the end depends on the driver and the OS. The OS could dedicate some of the RAM for the GPU use and say "that's it, you are not getting any more", the OS could reserve a minimal amount but allow the driver to allocate more if needed, or there could some arrangement in between. At any rate, regardless what your system tells you, Intel iGPU has full access to the entirety of the system RAM, as clearly shown by Vulkan capabilities reports.
For example: https://vulkan.gpuinfo.org/displayreport.php?id=10970#memory shows an Intel machine with 8GB of GPU-accessible memory. This memory is DEVICE_LOCAL_BIT (which means it can be accessed by the GPU directly, without an intermediate transport layer) as well as HOST_VISIBLE_BIT + HOST_COHERENT_BIT, which means that the CPU can also access this memory directly.
Anyway, Apple on M1 also reserves some of the RAM for the GPU operation (this would probably show up as "kernel pinned memory"). After all, GPU is critical to user experience and you can't just swap the main framebuffer because a website needs more RAM. That's exactly what "pinned" memory means — RAM reserved by the driver for core system operation, which cannot be moved or swapped under any circumstances.
But overall, macOS cares very little whether the RAM has been allocated for GPU use or not. I can totally imagine that a Windows system might prevent the GPU driver from grabbing too much RAM (I simply don't know whether they do), but I was unable to find such a limitation on macOS.