Not used 1.7, only 1.9. And my experience is that only variables defined on defaults/main.yml on dependant role can be overridden. I usually use group_vars to override them, but in a few corner cases the only way I found to achieve what you pretend to do is to override them at the playbook level, and only when defined whithin the role definition (see below) and not in the playbook vars block (my tree is far more complex that only parent and children).
I did just consider it an annoyance, but as you state that it worked on 1.7 (and is what I expected at the beginning), it could be probably a bug.