Still though, you can always throw Ubuntu on a Thinkpad. A small company like System76 can't match the form factor and battery life of products from Lenovo, Apple, Samsung, etc.
I got the system back, and it seemed to work, but now I was getting a lot of crashes. I tolerated it for a couple of months as it wasn't so severe to make the system completely unusable, but I eventually got sick of dealing with it. memtest immediately reported some severely damaged RAM, so I emailed System76 and again, after a protracted paperwork/support process, they mailed me replacement parts to install myself (the only alternative to shipping the whole laptop back off to California; the disk is encrypted, but still was not looking forward to the potential of a careless tech wiping it and another $80+ bill to make sure it got back to me within the month).
I installed the new RAM modules (and I'll say that it was quite easy to take apart, only exception being the keyboard ribbon, much better than my old MBP) and things were going better, but I still get full system hangs in 3D games. I am concerned that there is a hardware issue with the GPU. Haven't cared enough to tackle that one seriously yet, as I do most 3D stuff on my desktop, but it's really annoying.
If System76 was better with their support processes, these would not be such a big deal, but with their non-cooperation in getting shipped repairs performed and returned quickly, inability to contract out or reimburse for local repairs, long RMA processes and limited customer service availability (no weekends, hours something like 9a-4:30p Mountain), it's just not worth the hassle.
Next time I will get a powerful Dell most likely. I just wipe them immediately and put Arch on anyway, so no concerns about bloatware/spyware/whatever.
If they were doing a 'Sun' type model, they would spec the hardware, get the Ubuntu distro and integrate it with some key features. Create an ABI and a DDI  that third party vendors could rely on to work for the next few years and when it changed to evolve in a compatible way, and then sell that to end users.
The point of having a managed ABI/DDI is that someone like an AutoCAD would be assured that if they ported AutoCAD to the system it would always work on all systems and if it didn't then System76 would figure out why and fix it. System76 would have to sign up to create a stable set of interfaces that provided all of the required features so that you wouldn't need "autoconf" or "configure" you could just add "#ifdef SYSTEM76" in your code where needed and know it would just work. Now System76 can build that out of existing pieces, they can say for example that "OpenGL will be available, link library is -lgl and include path is <opengl/*.h>" and those kinds of "restrictions" enable someone to maintain a version of their product for a 'small user base' (which rounded to the nearest million users is 0) Those same restrictions are anathema to many in the community ("Why force me to use Unity? I love Gnome/KDE/XFCE...") but they require a federating API if someone wants to code to them and support that code.
The counter argument is "community support has created stuff that runs on everything without restrictions, look at MySQL, or VIM" and that is a good argument, but for 'boring' things it works poorly, and 'boring' usually means tools of interest to a user who isn't interested in quarrying the rock so they smelt the iron to make into a lathe kind of users.
The third argument is that its all going into the cloud and people running computers that they compile on and stuff will be like people who spin fiber into yarn so they can knit their own sweaters, a niche and a small one at that. I can see the merits of that argument as well but hope it doesn't win the day.
 ABI - Application Binary Interface, DDI - Device Driver interface