Are you suggesting with 'Anti-conveyor belt' and 'Reverse QA bottleneck' that the only one testing the code is the person who wrote it? That seems off in my opinion.
Also, does your QA team cycle through the dev side to write tests?
With 6) does that mean squash merge? rebase? otherwise how do you enforce?
Also how do you ensure you deploy something that is tested, vs creating a new version of the code at the time of merge?