Variable precedence

I’m trying to understand variable precedence in Ansible - more exactly the part about host_vars and group_vars in inventory or playbook. My layout looks like this:

production/
├── inventory (alfa, beta and gamma hosts)
├── group_vars/
│   └── all (foo=1)
└── host_vars/
    └── alfa (foo=2)
playbooks/
├── site.yml (debuging variable foo)
├── group_vars/
│   └── all (foo=10)
└── host_vars/
    └── beta (foo=20)
 

So I have three nodes (alfa, beta and gamma) and foo variable. When I start a play I get this result:

alfa's foo=2
beta's foo=20
gamma's foo=10
 

According to documentation the precedence should be following:

  1. inventory group_vars
  2. inventory host_vars
  3. playbook group_vars
  4. playbook host_vars

But my result looks like the precedence is following:

  1. inventory group_vars
  2. playbook group_vars
  3. inventory host_vars
  4. playbook host_vars

Did I misunderstand something? Or is it a mistake in documentation? I’m using Ansible 2.0.1. but same is true for 1.9.3.