Programaticamente dentro de um switch gerenciado, todos os frames são marcados / identificados com algum tipo de ID de VLAN, de forma que o switch esteja constantemente adicionando e removendo essas informações dos frames à medida que entram e saem das várias portas do switch. É assim, por exemplo, que o switch mantém o tráfego em duas portas não identificadas em diferentes VLANs separadas.
Então, basicamente, tudo o que você faz ao configurar várias portas para tráfego marcado / não marcado é informar ao comutador se deseja colocar as tags no formato padrão 802.1q quando o quadro sair do comutador ou se as remover completamente. Em seu exemplo, a porta A sempre enviaria e esperaria no tráfego com tags, B e C marcariam automaticamente o tráfego chegando às portas com a VLAN programada e removeriam tags no tráfego que saísse das portas.
No mundo da Cisco (e na maioria das redes empresariais), chamamos portas como "portas de acesso" B e C. Estes são atribuídos a uma única VLAN dentro do switch e não suportam tagging no tráfego que entra / sai. Podemos usar portas como as portas de tronco, já que elas carregam várias VLANs, marcam o tráfego que sai da porta e confiam nas tags que entram pela porta.