Greetings,
I will spare the details, but suffice to say I am in a position where
after many years knowing the 'network' commands I've been tasked to
learn nmcli much better than I do now. This is all on SL7.

I've been reading documents, building and tearing down networks for
hours, and trying to put into practice what I'm learning (still a long
way to go; haven't touched the infiniband parts yet). Something keeps
coming up in documentation that bothers me.

Here is an example of one of *many* documents:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-Network_Configuration_Using_sysconfig_Files.html

They mention taking down a network with:
$ nmcli dev disconnect interface-name

but bringing it up with:
$ nmcli con up interface-name

That is so infuriating to me. Why use different sub-commands? Especially
when there exist subcommands in the same context? Why not do this?
$ nmcli dev disconnect interface-name
$ nmcli dev connect interface-name

Or even this?
$ nmcli con down interface-name
$ nmcli con up interface-name

As far as I can tell, they are both doing the same thing. In fact the
only difference I can tell comes from the nmcli help documentation where
it says the difference is in the auto-activating:

$ nmcli d disconnect --help
<snip>
The command disconnects the device and prevents it from auto-activating
further connections without user/manual intervention.

$ nmcli connection down --help
<snip>
Deactivate a connection from a device (without preventing the device
from further auto-activation). <snip>


If it was just one document, then whatever. But I've seen that in
several of the RH documents as well as on several blogs/webpages. What
am I missing? What is the difference and why should I prefer to take
down a connection with "device disconnect" but bring it up with
"connection up"?

Thank you!
~Stack~