I'm an intern learning git in combination with gerrit myself and I've had the same issues as you recently.
Avoiding dependencies
Is the best approach creating a new branch locally and then merge back to local master branch after change set is merged on the remote master and being pulled and rebase from it?
This is indeed how I was taught to do it and if you think about it it makes sense. This way your local master is always in sync with the remote and because you create 'alot' of branches you have greater control of your repository.
Breaking up existing unwanted dependencies
I usually rebase interactively and reorder commits that I want to make independent at the top of commit list and then I git reset --hard HEAD~x and make new branch. I proceed then the same as in point 1. Is there any easier way to do it?
git rebase -i
for reordering commits to change/break dependencies is indeed the way to go in this case. At least that is how I was taugh to deal with these situations.
Because just reordering commits does't really break dependencies on Gerrit, right?
It does. If you reorder your commits locally and then push to gerrit again, the new patch set will have different dependencies.