[deleted] I don't think there is anything different or unusual about this Micro$oft Surface Go Laptop I'm using, it has an Intel CPU and GPU so it must be very compatible, though at certain price points hardware compromises have to be made, but the overall build quality is very good.
Surface devices are known for the quality of their builds, on par with Apple, Dell XPS, and other flagship builds from major OEMs. I am not, in any way, suggesting that Surface devices are deficient in that respect.
I am grateful that @codewizard1975, @infinitymdm and @ReillyBrogan chimed in, explaining the issue better than I did.
I would add only a conceptual framework: What you and I think of as a "computer" is dozens of different, separate computers, linked together (maybe "networked together" would be a better way to describe it) by firmware (both UEFI/BIOS firmware and component-specific firmware) to function as a unified whole. That's true even if you are running a so-called "system on a chip". The component/firmware base, in turn, interacts with the OS to run the computer.
The interrelationship is complex, to say the least, which is why it isn't unusual to run into issues when an OS (even a clean install of Windows) replaces the OEM build that came with the computer. For example, I found that I had to install a specific Dell patch for a component after doing a clean Windows 10 install on my Dell Latitude and Optiplex computers. For some reason, Windows 11 gets it right and I don't have to do that any more.
Although your Surface Go works with Linux in most respects, it looks like Microsoft has tweaked something about the way in which the battery controller works (probably to optimize battery life in Windows) and how battery status is reported. The tweaking doesn't play well with Linux. That's not the end of the world, because it looks like there is a Linux patch (see ReillyBrogran's most recent comment) if your laptop is a Surface Go 3.
If your laptop is a Surface Go 3, let Reilly know and Reilly will point you to the patch.