Would that function be written any differently than how the commands would normally be expected to run out of a command block? I've run into this bug while updating several of my creations and it'd be extremely helpful to have an example of this workaround.
execute if block ~ ~-1 ~ sand run effect give @s jump_boost 1 5 true
every zombie entity will be executing the function at it's location.. all seperately.. so individually, they should all check the block on their own, without the bug that makes this an and tester instead of an or tester for multiple entities being tested.
I believe it may be possible to do this too, I haven't tried it out yet, but.. maybe..
execute as @e[type=zombie] at @s run execute as @s if block ~ ~-1 ~ sand run effect give @s jump_boost 1 5 true
since it's running 2 separate execute commands maybe
EDIT: Looks like the bug is fixed for the future version after 17w50a