Could you clarify your scenario a little bit better?
Is your workflow’s first node a project update or an inventory update? It sounds like maybe it’s an inventory update. In your mind, what is the definition of “changed” there?
I believe it would be mostly viable to produce an overall changed status with a true / false value for these job types. There would still be some imperfections. It’s impractical to determine if role or collection installs changed something (but practical to know if it was run at all). In those imperfect cases, we would error on the side of changed=true, similar to many Ansible modules. Accurate idempotence is a goal, but not always reality. I filed this related issue:
https://github.com/ansible/awx/issues/2357
Speaking strictly for myself, I think this would be a good enhancement direction to go in, because it aligns with the Ansible core paradigm.