I don't understand why you would have to rebuild it twice, unless you are saying your application hard-codes the tablespace name when it creates objects. Even so, once the objects are created, what's the big deal with them being in a different tablespace?

Personally, I prefer REBUILD because you can REBUILD ONLINE and not disturb your users. Dropping an index and re-creating it just makes queries slow for the time you are creating and analyzing your index.