Why are there not generic phone OS installers?
In short, it's because of the different ways that Android and MS Windows are distributed. MS Windows is a retail product, sold directly to PC owners. Therefore, Microsoft is responsible for making it run on PCs. PCs are standardized, and (nowadays) have a hardware-discovery mechanism, so Microsoft can design the Windows installer so that it can run on any PC-compatible machine. It's in their interest to make drivers for old Windows versions compatible with newer versions, so that they can keep selling new Windows versions to users.

There's also a technical dimension to this. Phones aren't just "tiny ARM PCs" as you suggest. The distinguishing thing about a PC is that it satisfies the PC specification, originated by IBM but now specified by an industry consortium. There are several more standards for how components of a PC interact, and they're what allows automatic driver configuration such as you find on a desktop PC. Graphics cards offer a VESA interface, which allows graphics to be displayed before a GPU driver has been configured.

All PC hardware nowadays offers Plug N Play, which allows the OS to discover hardware and configure the memory map at boot. Before Plug N Play, you had to change physical jumpers on each PCI card, and then tell the software what memory range, IRQ, etc. you'd set on the jumpers. And in the days before DirectX and its ilk, you had to do that separately for every game that wanted to use that hardware. Plug N Play came about mostly so that sound card (and other discrete component) vendors could make easier-to-install hardware.

In contrast, Android isn't a product that's sold to users: it's "sold" to device manufacturers. Phones (also tablets, STBs, media players, etc.) don't have anything like the PC specification, so it's not possible for Google to make an "Android installer" that can run on any device. Even displaying the battery animation when the phone is off requires it to load the Linux kernel with a framebuffer driver and a battery driver. It's the device manufacturer's responsibility to modify the Android source code so that it can run on their device, and the resulting Android firmware image belongs to the manufacturer: they don't (have to) give those changes to Google or anyone else.

The phone world doesn't have these kinds of standards, because there's no demand for it. There's no one trying to sell phone components that you put together yourself. No one in the phone industry is interested in making an OS that you can install on any phone - only the likes of Ubuntu and Mozilla, who are outsiders with no contribution to hardware standards.