Do granting subsidies always cause allocative inefficiency? I realise that subsidies cause allocative inefficiency if the market was already allocation efficient pre-subsidy due to deadweight loss.. but is this always true? 

what if the subsidy was granted due to market failure (as is usually the case), that would mean that granting the subsidy would improve allocative efficiency, right? In this situation, does it still cause a certain degree of deadweight loss?
Your intuition is correct: in cases of market failure when the price under-represents the marginal value to society as a whole (for example if positive externalities are present) then granting the subsidy would improve allocative efficiency. As long as the subsidy is not greater than the positive externality, then the only loss in that case arises from the overhead in managing the subsidy - the bureaucratic cost. This is typically less than the inefficiency resulting from the market failure, so society gets a net gain from the subsidy.

The same thing applies with taxes and negative externalities. For the original work on this, see Pigou's seminal "The Economics of Welfare" (1924)