The answer to this question is much easier now:
– Use Row Based Replication and Read Committed isolation level.
The locking you were experiencing disappears.
Longer explaination: http://harrison-fisk.blogspot.com/2009/02/my-favorite-new-feature-of-mysql-51.html