Earlier quoted context omitted.
So initial vs subsequent encounter are completely different codes? Wouldn't this approach double the number of codes? Why wouldn't this be some other field of data associated with the form instead of mixing it up in the diagnostic 'topic'. I know nothing about medical diagnosis codes.
Medical diagnosis codes are all about reimbursement. Doctors do not rely on coding so much as finance dept relies on coding. Proper coding means more $$, so talented dx coders are valuable. Separating the code this way may not make sense medically, but it makes a lot more sense when you realize CMS or Blue Cross wants more coded granularity for automatic transmission of accurate financial information.
Because while there's certainly a lot to be gained by a bit of creativity with the coding, the first/subsequent encounter distinction is ill-suited, considering these are binary categories, and any mistakes/attempts to defraud can detected with an sQL query shorter than this paragraph.
Concerning the original question: it's basically denormalized, with the usual tradeoffs. I'd guess it's easier to double the number of codes than to add a new attribute to legacy systems.