Do 'dumb' (non-smart, non-managed) switches have an IP address?

An unmanaged switch does not even know what IP is. It will forward IP packets as well as many other protocols without ever understanding what the difference is.

All the switch needs to know in order to decide where a packet goes is the MAC address.

Destination and source MAC are two of the three Ethernet header fields which the higher layer must always provide, the third is EtherType which is a 16 bit number indicating what the higher layer protocol is. Some examples are

0x0800 IPv4
0x0806 ARP
0x86DD IPv6

In general these numbers are opaque to switches and are treated as just data. There are exceptions such as 0x8874 and 0x8899 which some switches (usually managed) will use to detect loops.

Most network analysis tools won't be able to tell the difference between a pair of machines directly connected with an Ethernet cable and a pair of machines connected through 1, 2, or more switches.

By probing a switched network from 4 or more machines with carefully crafted source and destination MAC addresses it is possible to deduce some information about the structure of the network by observing if two network paths are using the same CAM table or not. It may also be able to measure roughly the size of the CAM table and how quickly entries are timed out.

Based on such metrics it may be possible for sophisticated network analysis tools to say how many switches are on your network and maybe even make some guesses about the chips used in those switches.

No, they shouldn't appear at all and they don't have any IP. They're just network switches.

An IP address is used to access a device. So a switch which has software to allow settings, might need an IP address to let a user access its management system or web interface.

But by definition, a dumb switch is never accessed that way by a user.

It is preprogrammed with a plain "redirect everything" firmware or ASIC (chip). It doesn't need an IP of its own, to be able to move ethernet frames (containing data packets) between incoming and outbound physical ports, and it doesn't have a management system that a user can access.

So it doesn't have (or need, or use) an IP address for itself... and that's why it doesn't have one.