The only reason to switch from the arduino might be a hardware speed limitation, not software. I've was a programmer for 30 years with the last 10 years doing software research. I admit that I've switch from a standard UNO to a Mega due to code space but the arduino will do almost anything I want.
I have a raspberry pi but I find it to be a complete PITA; it's a whole lot of work to interface it with the world. Anyone who wants to take over my projects would have to be a unix expert which isn't true with the arduino.
Virtually every arduino project I build has a REST (non-graphical web) interface built in so I can tune and query the application on-the-fly. This is really easy with the arduino and has become the foundation framework for every one of my arduino projects. I've started to couple this arduino REST interface with ExtJS (javascript library) on the mac to provide a graphical web interface to my projects. This approach lets each component do what it does best.
Don't think that you are inherently limited by the arduino (unless you are trying to do intensive bit-banging like image processing). I'm think of doing a project handling large data sets which would tax a single arduino. For that, I'll build a distributed network of arduino's that communicate with XBees.
Think of the arduino as an incredibly flexible, cheap tool. Figuring out how to maximize its capabilities is a lot of the fun.