AddGameplayTags has no effect

In Blueprint, when I use AddGameplayTag node on GameplayAbilityComponent tags, it proceeds with no errors, however tags are not added. I suspect the this is some kind of bug with the reference, but it would be nice to know for sure.

I thought I could add this tag to ability system to prevent some abilities from being activated when the owner has this tag. However it does not work, since the owner (AbilitySystemComponent) tags do not change, despite this operation.

Upon closer inspection of the source code it seems that GetOwnedGameplayTags returns a copy of the tags and is not suitable for editing them. In order to add tags without applying a gameplay effect, the only way is to use C++:

void ACharacterBase::AddGameplayAbilityTag(FGameplayTag tag)
{	
	GetAbilitySystemComponent()->AddLooseGameplayTag(tag);
}

I wonder if there is a way to use gameplay effects to add or remove tags based on character condition in the blueprint. If there is I would like to know, because this AddLoose function does not replicate and considering how basic of a use-case this is, I would have to implement all of the same replication logic that the ability system already has just to be able to do this.