На первый и второй вопросы я нашел ответы, а вот третий я бы хотел чтобы кто-нибудь мне обьяснил механизм действия.
Получается, что скрипт передается в страницу, получает доступ к переменным или dom, передает данные в фоновую страницу и удаляется.
А если на странице еще не прогрузилось ничего? Тогда было бы разумно после загрузки удалять скрипт.
var onload = function() {
script.parentNode.removeChild(script);
};