There's a (theoretical) absolute limit of 65535 concurrent connections. When using SNAT or MASQUERADE, that is. As such, the maximum feasible number of devices would be somewhere near 800, to account for closing and opening connections.
A TCP connection is uniquely defined by local and remote host and port. As such, the router could establish up to 65,535 connections to the same host and port. At the same time, it could establish another 65,535 connections to another host and port.
That means you can have an overall amount of (local addresses) * (local ports = 65,535) * (remote addresses) * (remote ports = 65,535). Of course, some local ports may not be available (services hosted or port forwarding). However, it’s still more than you’ll ever need.
Naturally, this would require a network larger than /24, which poses no problem with OpenWrt and the like. Without aftermarket firmware, most routers are limited to a /24 network, leaving 253 IP addresses for hosts. Wireless connectivity might be further limited, sometimes greatly.
However, you’ll most likely run into resource exhaustion before you’ll get anywhere near these limits. Connection tracking is very hard.
I don't know if there is a limit to number of devices which can connect. It would make more sense that most routers are limited by their hardware, and will experience performance degradation as number of devices increase.
This, I suppose, largely depends on the speed of the routers CPU and available RAM, but it also would largely depend on the services running on the router, i.e. is NAT enabled, QoS, VPN, Access control, is wireless open or with password, etc. I think that the amount of traffic that devices make, is also an important factor to the limit.
I think that this also might be the reason why manufacturers do not specify number of devices which can connect, because it depends on many factors.