The problem with properties having to exist in a plug-in is that the moment you need any decent extent of dynamism in the layout you are SOL, so it's not really an option, and while you could get users to ignore errors, if you have automatic log compiling, summaries, monitoring etc (and we do) then you get false positives, and those are beyond annoying and enter dangerous grounds.
Even if we accept that users will not panic and will remember what failures are tolerable and which ones aren't, purely for the sake of argument, because it ain't gonna happen, when you go to the farm/automation then you have to handle all those exceptions to erroring, and sorry, but that's just NOT going to happen as the risk for an excessively fault tolerant farm environment is never, ever, worth it. The only way around the lot is to have your own property cooking to create and destroy the error prone parts of the process on various events, but again, it will only be fine if your dynamism is at creation time, the moment you want truly dynamic layouts with proper garbage collection, there truly is no way out of it (without having hundreds of parameters stashed away hidden for when you might need them, with all the unacceptable added load that entails). In short: No, sorry, custom properties and persisting faulty layouts that appear to be working despite a polluted log are not conducive to a clean and healthy pipeline, they are the exact opposite, they are a damaging and muddying nugget in the pipe that usually turns cantankerous quick.

