There are a plethora of factors to take into consideration here, and every response will inevitably carry some subjectivity with it. In my opinion, there isn't a singular "right" way to approach this issue. I've personally discovered that the most straightforward approach involves having a single Vue instance in app.js, constructing components, and then utilizing them wherever necessary within the app div. However, this method may be excessive and could have negative implications in certain scenarios.
For instance, if your commitment to Vue is not unwavering, you may find yourself wanting to incorporate jQuery or various jQuery plugins elsewhere in your application. Combining jQuery and Vue can pose challenges unless you are initializing jQuery within Vue components. Consequently, if you anticipate the need to integrate other JavaScript libraries like jQuery, it may be more prudent to employ distinct instances of Vue with narrower scopes for each component.
If your use case primarily revolves around leveraging Vue for global functionalities like line-clamping or text truncation, opting for a global installation would likely yield the best results.
In terms of other considerations such as overhead, I believe both approaches would more or less balance out. Global loading offers the advantage of browser caching despite requiring the script on every page. On the other hand, loading scripts on a per-page basis avoids unnecessary loading across all pages, only incorporating them when necessary. Overall, the overhead for Vue in today's web environment is quite minimal, so it shouldn't heavily influence your decision-making process.
These are just my personal insights on the matter.