In the best of worlds your practices evolve from your principles. Compound the relationship between your principles and _current_ practices with the effects of the real world and you end up somewhere in between. That's life. It's easy to stand from a "higher elevation" like a consultant might, point your finger and say "You are not doing this." It's a harder thing to really make it happen.
I see parallels in people bickering about whether some element of a service is or is-not RESTful, when maybe 95% of the functionality of the service is acting/quacking like a duck.
In a recent book, which I learned from a podcast[1], Lant Pritchett argues that much of the increase of education in developing countries is to a great extent fake, being inflated by governments which "have created all the appearances of schools that provide education but without actually doing it " by producing "enrollment statistics, numbers of buildings, numbers of toilets, numbers of textbooks, numbers of everything (...) all of which can project the image that there's a functional system and providing real learning there."
I think a similar effect has happened to RESTful architectures; people making them have (inadvertently, I believe) produced very convincing emulations while skipping the parts that effectively distinguish them from RPC systems.
I see parallels in people bickering about whether some element of a service is or is-not RESTful, when maybe 95% of the functionality of the service is acting/quacking like a duck.