The fundamental problem with customizability is that code path complexity is exponential on branching. So it works as long as your app is sufficiently simple, but eventually, the exponents catch up and eat ur software alive.
I think that if the entire computer and operating system are designed better, and the software is designed better, then there are things to be done which would improve the customizability and other things. (I mentioned some of my ideas in some other comments.)
FOSS also helps, but just because it is FOSS does not itself help (and is mentioned in the article), but it is one of the things to be done, too.
UNIX programs with pipes is also one thing that helps, but it is not quite perfectly. Nevertheless, writing programs that do this when working with UNIX systems, is helpful to do. (For working with picture files, I almost entirely use programs that I wrote myself which use farbfeld, and use pipes to combine them; I will then convert to PNG or other formats when writing to disk (I do not use farbfeld as a format to store pictures on disk, but only as the intermediate format to use with pipes).)