The difficulty in making fancy progress bars revolves around the reality of what a progress bar is. It's basically a fancy wrapper for a drawable. And getting drawable to do what you want is difficult. There's lots of lines of code because getting a drawable to do this is difficult. Tinting of drawables is a relatively new feature (android 5.0), so if you want to use it, you restrict yourself to 5.0+.
You might be better off just writing a complete from-scratch custom view. Override onDraw, draw with canvas rendering calls; invalidate every time you want to update the appearance.
To a large extent, the premises around which the original progress bar were designed no longer apply. Consider Android 1.0, that ran on primitive precursors to modern smart phones with 320x240 displays and just enough RAM to inhale before you ran out of memory; no GPUs; and a CPU that is hard pressed to fill the screen with a solid color let alone render a polygon. Obviously no longer the case.
fwiw, there's enough behavior in most widgets that its normally unwise to mess with them. That doesnt really apply to progressBar.