Browsers implementing Shadow DOM have optimizations to ensure that duplicating the same <style> tag in the shadow DOM of element instances is low-cost. If your question is practically, "how do I share styles between two elements using lit-html?", the pattern we are leaning towards are putting common styles in modules that e.g. export const sharedStyles = html`<style>/*shared styles...*/</style>`, import that into the element code, and then interpolate that into the template during render()ing.
That said, we do in fact give you the choice. When using LitElement, you can override the default implementation of `_createRoot` (which creates and returns the shadow root on the element) to return `this`, to achieve rendering into the element's light DOM and forgo DOM & style encapsulation.
Note that opting to do this means you lose child distribution via <slot> , you expose the rendering to the outside world making it susceptible to inadvertent styling and/or DOM manipulation, and it generally means the component cannot be used inside an element that does encapsulate its rendering using Shadow DOM, since global styles will not reach it. As such, this is a choice that may be reasonable to make for app-specific elements to deal with legacy global CSS, but should generally never be made for reusable elements, since you lose all guarantees of reusability granted by encapsulation and open back up a lot of the problems that web components solve for making UI components reusable in any context.
Hope that clears it up.
Kevin