The following is based on decompiled version of Minecraft 1.9 using MCP 9.24 beta. All method and class names are the names used in the decompiled version.
The reason why this happens is that since 1.9 the method net.minecraft.entity.projectile.EntityArrow.getBrightnessForRender(float) overrides the method net.minecraft.entity.Entity.getBrightnessForRender(float). This overriding method returns always the same value (15728880) instead of a value based on sky and block light. The same applies for shulker bullets as well (might be intended).
Solution: Remove the getBrightnessForRender() override from class EntityArrow and move it into EntitySpectralArrow. EntityArrow will then inherit the default method from Entity, which gives the desired lighting.
Probably a result of spectral arrows being the same entity class as normal arrows during initial testing, and not being converted to separate classes properly.
Class names and method names taken from MCP namings.
Confirmed for:
15w31a However it seems that this affects also ShulkerBullets if they are far away