Well you don't have to accelerate it all at once. Remember, this is space war, and we're playing for keeps. Spending a millennium to accelerate a rock up to .5c might be worth the trouble.
If you take longer to accelerate it, that just increases the probability of detection by other means. It still doesn't change the argument that it should be much cheaper for the defender to detect and deflect your projectile than it was for you to launch it in the first place. Not to mention that an unmapped interstellar gas cloud, or an undetectable asteroid, is all it takes to deflect the projectile a few millionths of an arcsecond and make it miss its target.