Why we need access to body? First thing, it is programmatic access to setting and unsetting event handlers. It was extremely convenient to do it from the markup on a hash-routed website with a lot of views, especially if you want to map keyboard input for each route/view. Another indispensable use case was to handle setting properties and hints for different screen readers. Some screen readers or accessibility tools effectively have their own mark-up formats, and dom addons, so effectively you have to develop a website for a certain browser set, AND, a specific screen reader. Being able to programmatically set classes, lang, dir, and metadata properties (SEO meta, hints for ecommerce search engines) with router mounted on body was quite convenient too. Finally, having document.body DOM object being rewritten from Vue's DOM also worked well with routable sites where a view/route has a code that does something to the body DOM object that is specific to that route AND/OR a reactive data in it. I'd say, this is the most hard thing to implement when the upstream code from Vue and 3rd party Vue modules has no awareness of such possibility.