А в чем проблема изолирования JS?
В es5 функциональная область видимости. В es6 блочная. Этих знаний достаточно, чтобы сделать железобетонный JS. Ну и используйте переменные с блочной областью видимости - let, const.
(function(d, w){
//ваш код
})(document, window)
и всё ваш код изолирован.
По-поводу HTML тоже проблем нет, а вот с CSS вы хапанёте очень сильно. Нужно будет скидывать стили для всех сайтов. CSS раздуется до неимоверных размеров.
input {
background-color: transparent !important;
border: 1px solid #0de !important;
...
}
Если же Вы наоткуп отдаете стили, чтобы интеграторы с этим вопросом справлялись сами, то кажется, что им это не нужно. Ведь это нужно иметь штатного верстальщика и не всем он нужен. Хочется просто подключить JS и чтобы работало.
В общем, сам я больше за iframe только из-за того, что отгребу от CSS.