I tried to reproduce your issue and used esxcli instead of esxcfg-vmknic, but it shouldn't really make a difference. Anyways, it seems like disabling the vmknic on the host-side breaks the actual dvPort on the dvSwitch-side, creating a kind of hen/egg issue:
# esxcli network ip interface list
vmk2
Name: vmk2
MAC Address: 00:50:56:44:2e:2d
Enabled: true
Portset: DvsPortset-1
Portgroup: N/A
VDS Name: DVSwitch_1
VDS UUID: eb 87 02 50 9c 24 6d 6d-c2 60 55 8c 58 ef f3 69
VDS Port: 5757
VDS Connection: 1498871745
MTU: 1500
TSO MSS: 65535
Port ID: 67108872
# esxcli network ip interface set --enabled 0 --interface-name vmk1
# esxcli network ip interface list
vmk2
Name: vmk2
MAC Address: 00:50:56:44:2e:2d
Enabled: false
Portset: DvsPortset-1
Portgroup: N/A
VDS Name: DVSwitch_1
VDS UUID: eb 87 02 50 9c 24 6d 6d-c2 60 55 8c 58 ef f3 69
VDS Port: 5757
VDS Connection: 1498871745
MTU: 0
TSO MSS: 0
Port ID: 0
Re-enable does NOT work:
# esxcli network ip interface set --enabled 1 --interface-name vmk2
Sysinfo error on operation returned status : Not found. Please see the VMkernel log for detailed error information
vmkernel log contains:
2013-01-23T11:06:08.991Z cpu15:39357)WARNING: Tcpip_Vmk: 851: Could not open a port to 5757: Not found
2013-01-23T11:06:08.991Z cpu15:39357)WARNING: Tcpip_Vmk: 788: Unable to attach vmk2 to 5757 [error = 0xbad0003]
2013-01-23T11:06:56.652Z cpu0:37226)WARNING: Tcpip_Vmk: 851: Could not open a port to 5757: Not found
2013-01-23T11:06:56.652Z cpu0:37226)WARNING: Tcpip_Vmk: 788: Unable to attach vmk2 to 5757 [error = 0xbad0003]
2013-01-23T11:08:03.423Z cpu0:39374)WARNING: Tcpip_Vmk: 851: Could not open a port to 5757: Not found
2013-01-23T11:08:03.423Z cpu0:39374)WARNING: Tcpip_Vmk: 788: Unable to attach vmk2 to 5757 [error = 0xbad0003]
Note how disabling it set the Port ID to 0. Weird.Also, net-dvs | grep 5757 -A50 listed detailed info on the dvPort where my vmk2 was attached before, but now it doesn't.
I had to remove the stale vmkernel port and manually create a new one:
# esxcli network ip interface remove --interface-name vmk2