In my opinion there is still a way to apply system fonts programatically on TextView without having any memory issue and that is using textview.setTextAppearance
method :
if(condition){
textView.setTextAppearance(context,R.style.styleA);
}else{
textView.setTextAppearance(context,R.style.styleB);
}