Blender will paint with 100% strenght throught a texture with grey scale levels.
So if your texture is not 100% white, blender will use grey value as a factor.
Any point under 1.0 or 100% white value will be painted as if you were multiplying your 100% stenght by the pixel value.
A 0.5 value of the texture pixel multiplied with a 100% stroke stenght will result in a 50% painted pixel.
If you paint again the same area you will get a 100% white pixel.
Using 100% strenght white brush with texture will paint the texture as it is, transfering any colour information (grey scale or RGB). Using texture mask will transfer the brush colour, regardless of any mask colour infomration. Only the mask values will be considered.
hope it helps.