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.
External HDDs, external DVD drives, laptop cooling pads, if you were looking for examples.
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.