Making clear separation of concepts requires a lot of experience in software design. That is not easy. But using good designed software is real fun !
Well, I just think that sometimes, people go over the roof here. Obviously, in some cases the separation is the right thing to do, but to do it always only leads to added complexity without any real benefit to the program reliability or user experience.
Design is more like religion. It is hard to explain why one is better than another. People usually choose one and follow it whole life ...