Instead of severing non-free all at once, why not try and phase it out more progressively?
I would propose the next release include a package that periodically checks what non-free packages are installed. The results would be sent to a Debian server for statistics gathering. The user would be prompted to enable the feature of course, and the opportunity would be taken to educate the user about what why this is being done. With the count of installed packages on hand, a schedule could be created. Each month, a number of packages could be assigned a 3 month sunset date, starting with the least-popular packages, and estimates could be given for dates on the remaining packages. Seeing a drop dead date for each package would inspire people to find and create free drop-in alternatives without so severely disrupting use. Even expiring only 10% of the total number of non-free packages each month means a full removal within a normal Debian release cycle with plenty of time left for testing. I would also hope that the maintainers for the non-free packages would still handle security updates for the stable branch, and would take it upon themselves to turn their packages into meta packages that suggest free replacements as they are created or found. These meta packages could then be included in the next Debian release in order to provide a smoother upgrade.
signature.asc
Description: Digital signature