I am pretty sure that FinancialData gives incorrect returns for all stocks, ETFs and other securities on distribution days.
Let's take an example of SPY ETF that payed a dividend of 0.937 USD (or 0.48%) on June 20th, 2014.
On June 19th the raw close price was 196.48 and on June 20th the raw close price was 195.94. This means that the fractional change in price was 195.94/196.48 -1 = -0.27%
However, once you adjust for the dividend on that day you get 0.48%-0.27%=+0.21% return.
FinancialData function gives +0.21% FractionalChange on that day and a +0.68% return!!!
This is clearly a bug since it is double counting the dividends!
FinancialData["SPY", "Return", {{2014, 6, 19}, {2014, 6, 20}}]
FinancialData["SPY", "FractionalChange", {{2014, 6, 19}, {2014, 6, 20}}]
FinancialData["SPY", "Close", {{2014, 6, 19}, {2014, 6, 20}}]
FinancialData["SPY", "RawClose", {{2014, 6, 19}, {2014, 6, 20}}]