Everything you needed to know about configuring an interface you could find with 'less /usr/share/doc/iniscripts*/sysconfig.txt', better than any network device where the configuration cli's built-in help is only useful if you've completed 3 weeks of expensive training courses.
Since about RHEL4, anaconda would have populated the HWADDR variables so devices don't get renamed, although the new approach in udev is probably better.
NetworkManager (in the stable versions of the distros I run) seems to still be incapable of:
-setting a metric for a device (e.g. METRIC= in ifcfg-$ dev
-pppoe over a wifi interface
-doing static routes in openvpn like you can in an openvpn config file
-sane handling of WiFi (e.g. WPA2-Enterprise where the credentials have other access) passwords like wpa_supplicant+wpa_gui, I don't want to enter it every time I associate to the network, but I don't want it stored on disk ... prompt me once and keep it for this desktop session, because the sceeensaver locks on suspend or idle for 2 minutes,, but the desktop session can run for weeks at a time).
All of these features are either very important to me, or critical for me to my job, so NetworkManager is only used for the cases there is something I can't do the traditional way (mobile connection using the built-in 3g modem on my laptop which doesn't seem to work with ppp over the serial devices created by the qcserial driver like with the usb dongles I used before).