1) А какой жизненный цикл у вьюмоделей? Не работал просто с ними
2) Так делают когда хотят что-то закешировать или когда лень "правильно" пробрасывать компоненты и тп. Я бы так не делал, так как может все нафиг утечь.
3) Контекст у вас есть в ApplicationComponent. В идеале вы его должны получить оттуда.
4) Билдеры билдят компоненты даггера. Никакой магии в них нет. Все что вы описали в интерфейсе компонента, должно быть проброшено в билдер, чтобы можно было создать компонент.
https://dagger.dev/api/latest/dagger/Component.Builder.html