Yes. The router operates also with the MAC adresses bound to every interface, that the switch also has to cache in its buffer. Moresome, on a computer you have the arp cache that also plays some role in name resolution and discovery.
It is not unusual that some stuff (especially in those small devices) sometimes gets a bit of a hiccup after a few weeks of 24/7 operation and a reboot will fix this- There are some brands of routers (that also do other fancy stuff in addition to rounting) where a reboot once a month is common knowledge and recommendation alongst the community...
The arp cache is loaded with the IP and MAC addresses of devices that are discovered on the local network. If a machine 1 tries to contact machine 2 for the first time, and the IP mask says it is on the same network, then machine 1 sends a broadcast packet saying 'are you there'. Machine 2 replies 'yes'. At the lowest level, all communication is via interface addresses (on ethernet and wifi, the MAC address). Both machines will then store each other's IP and MAC address in their arp caches. All communication then takes place machine to machine using MAC addresses.
If the mask says the IP address is NOT on the same network, machine 1 will send to the router. Unless the only communication is local, every machine needs to know the router IP address. If hard coding the IP address in a machine, also need to hard code the router and get the network mask right. If using DHCP, DHCP provides the router address and mask as part of negotiations.
Windows machines, if configured for DHCP but can't contact the DHCP server will often load a default address, which usually means it can't talk to anything. The solution is to find out why DHCP is not working and fix it. Putting in static addresses is a recipe for later head scratching. If you want a fixed IP address, most DHCP servers can associate a particular MAC address with an IP address. Use static addresses sparingly.
Switches are sandwiched between machines and have to learn MAC addresses. When machine 1 sends any message to the switch, it records the MAC address as being on that port. If the message is a broadcast (the 'are you there' message) the switch will send it out all ports. But if it is a specific MAC address it will know which port to send out, so only 2 ports are active. As far as I know, switches don't know IP addresses.
Unplugging from one port and into another should be detected by the device with the ports, but it's not bulletproof. The MAC address to port mapping has to be relearned, that means software, and that means may not work.
Which means in any extended network, things can get messy. The shotgun solution to solving a problem is to turn everything off, then turn on the DHCP server (or servers). DHCP servers should always have static addresses so don't rely on any other equipment. Then turn on anything connected to the DHCP server (which if it is your wifi router usually means everything else). If there are wireless APs they are turned on before the machines that rely on them. Don't forget the printers.
I have two DHCP servers on the same network but with different address ranges. Unless both are unreachable (almost never), I don't get the 'Windows booted and decided on a different network' problem.
IPv6 fixes some of this, and sometimes things work because the target is reachable by IPv6 but not IPv4. This can lead to machines not connecting to the Internet because the destination needs IPv4. Although IPv6 is definitely the way to go, it sometimes makes things 'interesting'.