It's quite easy to pass properties between elements and build entire apps out of Web Components. Many have been doing it for years.
Yes, it requires not just using plain markup - but template systems or JSX+VDOM are really good at this, and there's a huge choice in libraries. SkateJS is a library that allows you to plug-in several renderers to build components. LitElement uses lit-html. Polymer, Svelte, Vue, and Angular (the last when compiled to Custom Elements) have their own...
There also is a chance at standardization with the Template Instantiation proposal from Apple.