People who excel at theory usually don't do well in most programming positions. Perfectly normalized schemas do not hold up well in an operations heavy environment.
This also does not hold up well in an operations heavy environment. Like all things in programming, a well balanced approach is necessary. Some combination of formally structured data with some flexibility for future requirements is probably the best course of action here, but that's too much work for programmers these days.