Those devices should always use type B (standard, mini, or micro) connectors. Type A should always be used on the host side. The reason is that a type A connector on a host or a hub acts as a power source. A male-A-to-male-A cable allows two hosts to send power through the cable, which will likely blow the USB circuitry or kill the entire device. This is why connecting a keyboard to old micro-B smartphones required an on-the-go adapter, or an AB socket and supporting electronics that can act as both a host and a peripheral device.
Type C can be symmetric because the specification requires compliant hardware to perform this kind of negotiation (and more) between the two sides.
Those devices should always use type B (standard, mini, or micro) connectors. Type A should always be used on the host side. The reason is that a type A connector on a host or a hub acts as a power source. A male-A-to-male-A cable allows two hosts to send power through the cable, which will likely blow the USB circuitry or kill the entire device. This is why connecting a keyboard to old micro-B smartphones required an on-the-go adapter, or an AB socket and supporting electronics that can act as both a host and a peripheral device.
Type C can be symmetric because the specification requires compliant hardware to perform this kind of negotiation (and more) between the two sides.