Developers have the right to say how they want their code to be used in the same way that authors have the right to say how their books can be used.
The code in a public repository doesn't have to be "free" for developers any more than publically downloadable piece of software has to be "free" for end-users.
For example, Microsoft offers a freely downloadable windows iso which people are not allowed to use use without a license.
How? If I put my code on GitHub and I don't put an open source license on it, it's not open source, it's proprietary.
If you take, you give.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
This is already way too demanding. There should not be ANY terms, and similarly there shouldn't be ANY expectation from the user.There are licenses that provide no restrictions and licenses like GPL that do. Developers should be free to offer whatever licenses they want on their code.
Just because you like a particular kind of license, doesn't mean you should be able to make everyone who publishes a public repository use that license.