1. Nie ma sensu porywania się za frameworki jak się nie zna czystego języka. Później dochodzi do tego, że ktoś nie potrafi napisać bez Bootstrapa prostej, responsywnej stronki od ręki. Z CSS to akurat jeszcze pół biedy. Znacznie gorzej jest jak ktoś bez podstaw JS zacznie się brać za frameworki typu Angular czy React. Jednak nie zmienia to faktu, że wypada jednak coś umieć żeby w razie czego wiedzieć co edytować i gdzie, a nie bezmyślnie kopiować ze stacka z nadzieją, że "może się uda".
2. Zależy od projektu. Jak trzeba coś na szybko robić i klient jest takiego rodzaju, że go nie interesuje jak jest zrobione, tylko żeby było działające, to korzystam z jakiegoś grida. W innym przypadku flexbox.
3. Czysty JS.