Overriding default elements isn't very common, I think. Most apps just need to style elements not provide different functionality (which can usually be gained by simply creating a new directive).
In regards to managing view states, then yes it's very common,but you don't usually write those yourself, you use things like Ionic (or ui-router).