baseUrl of your shop is manage in ShopUrl, it is the basepath of your install
ex: localhost/myshop yo don't need rewrite module for that.
After that you can configure rewrite for each controller in the SEO&Url Tab (screenshot)
ex ?controller=mycontroller become /mycontroller and you *need* apache mod rewrite for that
If i understand your problem, I will say: there is no easy way to maintain link in front Main menu, because module topmenu doesn't have entry for blog controllers. you would write an issue
Here:
https://github.com/thirtybees/blocktopmenu
Or here:
https://github.com/thirtybees
I don't think shortcode exist for that. but it will very nice to have somethink like this {product->id}, {blogpost->id} or {category->id} to use in form to generate url.