Despite R's problems -- and they are significant -- I see very little benefit towards ditching it for Python. Python's libraries are getting better, but if you spend any time in both systems you'll quickly realize how much Python is missing. Until another domain specific language emerges and gets traction, stick to R.
Depends on what you're doing. In my research the moment I'm working on difficult to access data or with new techniques, Python becomes the better tool immediately.
R is absolutely beautiful for manipulating small data sets. It's the only reasonable way to plot things (with d3/protovis coming in a distant second) and it's supercharged by Hadley Wickham's work. It's also totally crippled for "general purpose" programming and turns to C every time you need more speed.
R is really good for playing around with data, but if you need to do some number crunching, R is horribly slow. This slowness offsets the advantages of having statistics specific features. Python itself is not too much faster, but PyPy is. I would pick R in most cases, but when speed is a factor, another route may be better.
I've been loving R since college and even wrote a love letter in the form of an R package for it. But Python just grabbed my heart these days after I learned to implement web things in Django. All the data magic are just a breeze.