This is your opinion right? Saying it's "wrong" is more like saying it should be a fact.
First of all, an app, a project is not a painting. Yes, of course you're using a metaphor, but no, it's not close enough. A painting is not as flexible as code changes, it's not modular, it's one monolith product whereas a project is a modular structure. If your stuff won't fit in the final product, you can always redesign some parts you've made to work with the current(latest branch) system.
2nd, nobody should be really pushing half baked stuff, branches are there for you to complete the feature and test. If it conflicts with the main working branch, development or master, the one who's pushing those changes is responsible for resolving conflicts and making it sure everything works(automated tests passed, builds successfully). It's a good practice for the one who's on a different branch to stay up to date with the main working branch. If you find yourself having to fix a lot of conflicts, then there's something wrong with your development flow, maybe you're not communicating enough with your colleagues.
Finally, just because it works for you doesn't mean it should work for everyone else. If you think about it, that's the only thing consistent for everyone.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.