CAN is just fine with quite a lot of line impedance mismatch, CAT5 is not only acceptable, but actually very good. CAN is slow and has edge rate control, hence the impedance matching on the cable, while theoretically still valid, bears little significance unless you are aiming for very long links (tens of meters). This is by design.
Framing is worth a consideration in any message system. UART (what you would use through RS485) naturally delimits at 8 bits. CAN frames at 8 bytes (64 bits) max. Properly hardware-implemented SPI has practically no limit, so the framing is SPI's strong point - although it's not usually properly hardware-implemented, and any multi-master kludges suck on SPI, so that's about it...
In any case, it's always a bit easier when you can limit the message size below the framing length. This way, you don't need to know where your message starts and where it ends, you don't need state, and your parser is the easiest thing on the planet. In UART, that's seldom possible (although sometimes it is, you can fit quite a lot of commands in 8 bits for example!), but the 8 bytes in CAN is often enough to do quite a lot, especially since you can utilize the wide address space as your "header", to signify different commands / subsystems / tasks / message types / whatever, leaving more of that 8 bytes for the actual payload data!
Hardware-wise, RS422/RS485 and CAN are both very simple, robust, cheap, and easy to deploy. Whichever is just fine. Both would also be somewhat cheaper solutions than Ethernet; especially if you consider the software complexity. Ethernet becomes an attractive off-the-shelf solution when you need isolation, or high datarates beyond a few Mbps.