execute as vs if entity

I'm making a datapack, and I noticed that in a lot of cases that don't require a certain entity to be running a command, execute as @.... and execute if entity @.... can be used pretty much interchangeably. Is there a reason to use one or the other if I don't need to pass the entity running it to the next command? Is one more optimized or have slightly different functionality that I'm not noticing? For example, my datapack checks if a player has a specific tag, and does a tellraw command for all players, so is there any reason to write it as execute if entity @a[tag=placeholder] run tellraw @a {...} instead of execute as @a[tag=placeholder] run tellraw @a {...} or vice versa?
Continue to help post