From a usability standpoint, almost all of the concerns (from both the user and the vendor) could have been simply addressed by a bit of forethought:
- Build _all_ the diagnostic routines into the machine. Sure, your on-board storage may grow, but that's a trivial cost.
- In the event of a problem, have the machine generate a full status / result dump internally, then encrypt it and sign with the manufacturer's public key.
- User dumps the encrypted dump to a USB key, and emails it to manufacturer.
- Manufacturer sends out replacement part by FedEx...
Yes, I know many will dislike the encryption, but _functionally_ this allows the manufacturer to retain control (their primary goal) without having to have people travel to troubleshoot, thereby accelerating the repair time (the user's primary goal).