You can easily set wordpress blog hosted in a subdirectory as a homepage. Let us assume that your blog is hosted at domain.com/blog/. To set home page for domain.com, create index.php in root directory and append the following code (note blog is hosted in /blog/ subdirectory):
<?php /* Short and sweet */ define('WP_USE_THEMES', true); define('WP_IN_ROOTDIR', true); require('./blog/wp-blog-header.php'); ?>
Now if anyone visit domain.com, they will see blog home page w/o visiting domain.com/blog.
This way you can give out WordPress its own directory while leaving blog in the root directory. You can find more information here.