WTF? It IS a developer's job to worry about system security from an application implementation perspective. It IS a developer's job to understand the operating system well enough to understand the best way to use the operating system's APIs and services. It IS a developer's job to understand what software is on their system, because that software could be interacting with the program they are developing.
I'm one of the very few developers out there that has extensive experience in developing both high-level enterprise software and low-level embedded systems -- both hardware and software. I am constantly frustrated at the way people seem to assume the term "developers" represents some homogeneous group.
Your arguments make the assumption that the software being developed must interact with some desktop OS in some way. Not all developers are working on applications that are built for a target architecture that is the same as their workstation. Not all developers write software that must be concerned with a particular OS. These people are more concerned with things like motor drives, signal processing, etc. Many of them are highly competent at what they do, but don't give a damn about why you shouldn't disable a firewall on an insecure network -- that's somebody else's problem.
The answer to plover's question is easier said than done. A company that does any kind of development work needs an IT support department that is capable of understanding the needs of the developers and balancing those needs against those of the company as a whole. In some cases this will mean developers get local admin access, in others it will mean the opposite.