Some commands in a function contained in #minecraft:load will not actually run when the world is created or re-entered. This is especially noteable due to the fact that we can now load datapacks into the world on creation.
The dysfunctional commands seem to be the ones related to players, like chat and player target selectors.
To reproduce:
-Add a function to the #minecraft:load function tag containing the commands say hi
and execute at @a run setblock ~ ~2 ~ dirt
-Create a world using that datapack
-Neither command will run. This also occurs when reentering the world.
-Run /reload
. Both commands work as expected.
See MC-145442