Hey, I have been working like this for years and my own site uses this approach. However, I have come across a few premium themes and a smaller amount of plugins when it can cause a few problems, usually these are things you can easily hack in the source but it may break things when you update your theme and you have to hack again (yoothemes always have this bug).
So, I tend to keep sites in the root now if possible just to simplify things as much as possible.
Moving the site to a different URL / Directory is a pretty simple process:
1. Move all of the relevant files
2. Run the following queries in PHPMyAdmin (or whatever DB tool you use)
**UPDATE wp_options SET option_value = replace(option_value, 'OLDSITE', 'NEWSITE') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'OLDSITE','NEWSITE');
UPDATE wp_posts SET post_content = replace(post_content, 'OLDSITE', 'NEWSITE');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'OLDSITE', 'NEWSITE');**
- URLs are full paths without a trailing slash so
OLDSITE = http://www.url.com/subdir
NEWSITE = http://www.url.com
Obviously, back up the DB and test the water first but I have used this SQL a bunch of times (even in the last week) to move sites from one server to another (testing to live) or to even move sites from a sub directory to the root. Or, even to move sites from a sub directory on a testing server to the root on the live space.
So, it is not an essential change by any means but in the spirit of keeping things as simple and straightforward as possible, the root tends to work a little better in my experience.
Hope that helps!
Marcus