Whether it is a bug or a feature may depend on your perspective, but I'll agree it can be confusing.
The "Q" button controls login/logout status at the extension level, while changing queue login in the presence window controls login/logout at the queue level.
If you have multiple call queues and are a member of more than one, you can use the presence view to selectively log in or out of specific queues. Using the "Q" button will then log you out or back in to only the queues you selected in the presence view.
The "bug" would be if you log out of all queues in the presence view, the "Q" status for the phone will till show active, but since you're not logged in to any specific queues, your status doesn't change. And since the "Q" button only logs in or out for the previously selected queues, the "Q" button then does nothing until you log back in using the presence view.
This can be a helpful process if you are a member of more than one queue, but usually do not participate in all of them, since the "Q" button will only act on the previously logged-in queues. It can be a problem if someone else (manager) is changing your queue login status via presence and you have no idea since you think you're logged in.
I treat it as an education issue for any users/managers who intend to use the presence view to do queue logins to understand the impact. The biggest impact for me in managing and maintaining systems is that there is no view in 3CX Management to see which queues an extension is logged into, only the extension queue status. This can make for confusing troubleshooting when someone says they're logged out but the extension status shows IN and it can only be viewed or controlled through the 3CX Windows client, not via the 3CX Management web page.