The 'spaghetti code' thing is just a stupid meme now - ARR does not use 1.0's code, it uses an entirelly new engine based on components of the Luminous Engine from FFXV (this is accepted fact). There are items, gear and character/enemy models reused from 1.0 but these are rendered in the new engine and are not using "old code".

Limitations with content are simply a result of a hurried development schedule due to needing to get ARR's base systems running and stable in order to meet the mid 2013 launch deadline, and they didn't want to screw up a second time around, so in order to make the base game functional that meant having to make as a closed system that was difficult to change or add new components to (such as glamour), and sacrificing allowances for futureproofing. It's not "spaghetti code" but just code that functions in such a way as to be limiting in how new additions are made (a lot of the problem is much of the processing for things like moving items around in your inventory is done server side instead of client side, so that all impacts on how content is designed for the game.