I strongly disagree with Justin Caves assessment. A production DBA would likely have a very different opinion.
Transportable tablespaces feature for moving subsets of the data between databases, without having to move the whole database.
read-only tablespaces so you're not backing up the entire database every week, which might take many hours, and you can't stand the performance hit for that amount of time, even if your limiting the rate.
only backup certain tablespaces at fixed dates due to the sheer size, although many places just don't have databases this big. same reason as point above.
Depending on your application, let's say there are modules that can function independently of each other at the application side. If they each have their own set of tablespaces, you can take one apps tablespaces offline to do a reorg without affecting the other modules... they can run as normal.
as for the separation of data and indexes: the traditional reason was for putting the two on different discs so they didn't compete with each other performance wise. Not so much of a problem with todays storage capabilities, like SANs, where it's all really the same storage area, but there is still the consideration that you're going to get contention at file header level even with locally managed tablespaces if you've got all your objects in the same tablespace where you can't locigally separate the indexes from the tables!! Even if you create 20 datafiles in one tablespace, you don't get to decide where the tables and indexes go, and then one day you notice you've got major contention at file header level because of massive activity against on table where it's indexes happen to be in the same datafile! In fact scrap that. if you've only got one ts, then you will without doubt experience file header contention.
there are more reasons for having that logical separation, and no, it's not about the performance for the most part, it's more about the administration in a production environment.