The odd thing is that when you stay around you can start to see patterns in misconception. People come into a long-lived codebase and naturally fall into the same thought traps, wanting to rewrite the same parts for the same misguided reasons. There is a principle here to follow on a new codebase, that of 'senseless inaction', meaning that as long as something doesn't make any sense to you yet, you should refrain from making deep changes to it. Only once insight is formed on why the seemingly completely pointless and bizarre feature exists and what purpose it is serving, then can a deep change to it be safely considered. Tragically, the natural instinct is to lay off the parts that make sense and to rewrite the parts that don't. That's a guaranteed way to make a product unsuitable for the business it is in, because the weirder a feature is, the more adapted it is to the real world (most of the time).