Possible!
http://jsbin.com/OtiweSut/3/edit
As Ben pointed out, I corrected the dupe names and removed the append/remove logic.
The other update is to treat <test-a> as the source of truth for the shared element. When <test-b> needs a handle, it gets it through data-binding but the original element remains part of the <test-a>'s shadow dom.
Another thing to consider is making |el| settable from an id:
elChanged: function() {
if (typeof this.el === 'string') {
this.el = document.getElementById(this.el);
}
...
}
<video id="myvideo" src="..."></video>
<test-b el="myvideo"></test-b>
This makes your component useful outside the world of data-binding. Standalone, reusable components are happy components!
BTW, if it's not important that <test-a> publish the |el| property as an attribute, you can do the following:
<test-a id="testa"></test-a>
<test-b el="{{$.testa.el}}"></test-b>