I don’t see how introducing a data flow solution would break interop? Everything inside my Custom Element is self contained. The outside world doesn’t know if I’m using JSX inside of it. They just know that they can set attributes or properties and my component will change state. I could have a vanilla custom element and one built with JSX all sitting in the same app, no problem.
If you have 20 custom elements that depend on the same library, HTML Imports will deduplicate that down to a single request (provided the author vends the library using an HTML Import). Or you could list the dependency in package.json and use JS to import it with a module loader. I wouldn’t recommend doing any bundling before you vend your component definition though. That seems like it should be left up to the developer using it. So if my component depends on moment.js I’d include the dependency in my package.json and `import moment from ‘moment’`in my definition.