And I'd like to point out that largely *because* NetworkManager usually doesn't work around stupid drivers and bad infrastructure, but instead encourages developers (including myself) to fix that infrastructure and drivers, we've come quite a long way in driver quality over the past few years.
NetworkManager is both the carrot and the stick. If NM just worked around broken stuff and proprietary drivers, it would be a hacktower of doom and we may still be stuck largely in 2006-wireless land.
Examples of driver/stack fixes due to NetworkManager:
- mac80211 adhoc mode association event and ibss merging timeout fixes
- fix wpa_supplicant adhoc/infra mode switching
- driver scan capabilty advertisement (automatically handle ap_scan=1/2)
- always respect specific SSID probe scans
- always return scan success/fail information instead of dropping it on the floor leading to userspace timeouts
- age scan results on resume so userspace doesn't get stale AP lists
- driver conformance to WEXT APIs, especially for WPA support around 2006/2007
- D-Bus control interface for wpa_supplicant
- Huge input to next-generation kernel wireless APIs so we don't repeat the mistakes of WEXT (especially with feedback from kernel->userspace, a large weakness of WEXT)
- improved ethernet driver support for carrier detection