How would a host with multiple NICs be presented on its local switch's MAC address table?
If there are multiple MAC addresses from a single port in the MAC table, how do we know whether that port is connected to a hub or host with multiple NICs?
The MAC address table of a switch is organized by MAC address, not by port. The switch looks at the table to find the MAC address so that it can see which port should be used for traffic destined to that MAC address.
The switch has no idea if other MAC addresses came in on that port, too; that's not the point. The only thing a switch needs to know is to which port it should send traffic destined for that MAC address. It doesn't matter if the device on the other end is another switch, a hub, and end-device, or something else. The switch doesn't care what sort of device is connected to the port.
Some devices can use CDP or LLDP to communicate more information about themselves to the devices to which they are connected. This would need to be supported and enabled on the devices on both ends of a link. For instance, Cisco devices can use CDP, and if it is enabled on your Cisco devices on both ends of a link, you can see what is connected to the other end of the link with the
show cdp neighbor command.