If you clear the cache (or do touch conf/local.conf) then do "bitbake -p", bitbake parses all recipes. However if you then run bitbake to actually build something (say, quilt-native), it re-runs the parse. This suggests that the parse done by "bitbake -p" is not being properly saved, and is a regression since this used to work fine.
This turned out to be caused by a couple of variables changing between executing bitbake directly (as is the case with -p) and wrapping bitbake in pseudo (as happens when you actually request bitbake to build something). These variables which were creeping into the environment and changing the data hash, which effectively invalidates the parser cache.
Fixes merged to master in revisions d0c615e51e57435034ffba5e55a17fae833c6688 and bd3fd17fc57f4091308c3326c6ae29020e374da8.
Marked as Verified.