I haven’t looked at what the shader or algorithm does under the hood, but it certainly looks like a multiply blending. You can check the sprite shader at the bevy_sprite crate
However, this “tint” behaviour works like that, I guess it feels natural for me because it works in the same way in other engines like Unity or Godot
What you are looking for is probably an overlay color, or something like that, that isn’t supported out of the box because the sprite renderer is very simple, afaik it doesn’t even use materials
So, your only options here is to write your own shader, based on Bevy’s, but replacing or adding the color instead of multiplying it.
To override Bevy’s sprite shader, I think you can do the same that Bevy does internally: call load_internal_assset! macro passing the SPRITE_SHADER_HANDLE but pointing to your own shader instead