I dont know. By rational I simply meant considered and well thought out. I doubt there is such a thing. Amongst other things a customers needs include flexibility and usability. Software is not set in stone.
Software can hold an organisation together.
I say there needs to be flexibility as well as purity. Right now though I hold with reusability. Developers have to think of the financial implications just as much the technical and social implications. I would argue that the portability of a system is inversely proportional to the number of libraries that support them. Your purity can be said to be unobtainable.