You still need precomposed versions of the default encoded Unicode characters, but then you can decompose these in VOLT and use GPOS mark positioning for the dots. This can be done either in the ccmp feature, or within the individual shaping features: isol, init, medi and fina. So, for example, one can decompose
ccmp
uni0628 -> B.isol dotbelow
There are some software support issues with this approach -- if a user in Word turns off display of marks, or chooses to display the marks in a different colour, this will incorrectly affect the dots -- but it is the most practical approach for many traditional styles of Arabic in which dot position needs to be contextually adjusted.