AB
с наибольшей вероятностью сломается что-то сложное, причем оно сделает это наименее очевидным образом.
во-вторых, удобство абстракций - вещь субъективная.
рано или поздно я упрусь в эти абстракции, и далеко не всегда на такой случай есть авторская точка расширения, а это значит - форк и патч.
в-третьих - да в конце концов, что значит "зачем понимать, что происходит". это мой гребаный код, мне платят деньги за то, чтобы он работал, а я понимал, как он это делает.