The problem is when your job is to get stuff out the door as quickly as possible. I just quit a job where I was writing primarily in a proprietary extension to a proprietary dialect of BASIC that has all manner of weird compiler quirks and just plain poor architecture. I knew there were ways I could do some better stuff long-term, but implementing them was completely outside the scope of the limited projects I was undertaking.