The do_package_qa() should rerun when WARN_QA or ERROR_QA changed, but it didn't atm.
Use do_package_qa[vardeps] += "${WARN_QA} ${ERROR_QA}" will fix the problem.
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=f6ec8dfaf7f98ade05d6292d2fea42805c4d80a7
Commit reverted verified on 60100884d4d6a20aaf499d7afcf7fc91faabd22e