Before that I had an XCarve but it was just too big and not rigid enough. I owned several early Shapeokos, which were simply not rigid enough. The 4040 pro is the first router I've had that's actually worked the way I expected (and even then, it clearly has some issues) in the cost window I care about.
CNC brings challenges (and joys) that 3d printing does not have. You have to spend a lot more time thinking about the tools and their paths, mounting the work in the CNC, dealing with dust, etc, etc, but it's really reawrding to hand somebody a carving and see them blown away by the results.
There are things like the MPCNC ,and building your own design with OpenBuilds, but I don't recommend them unless designing, building, and maintaining is what you want to spend your time doing.
THere is a programmatic aspect, too: Fusion360's modeller has a Python API that lets you programmatically build and evaluate designs. I rarely use this, but it does come in handy. For one project, where I wanted to make a 3D topo-style map of California (basically this: https://www.youtube.com/watch?v=LZkQ8pA_TLY) it was a great opportunity to learn geo (using the great GIS package, "OS4Geo", especially QGIS), turn that geo info into a mesh, and then render it in wood.
Stay-at-home-for-COVID made my life a lot easier, as I could start a carving in the morning and let it go all day while sitting nearby and programming.