I think virtualization can take care of consistent deployments. And developing under a virtualized container ensures consistency from multiple platforms.
My point is: a source-based approach is not the tool to blame for consistency, it's used with lazy concern, and that's a mistake onto the crafter.
I work on two different platforms as one. Virtualization achieves that.