Poison is more of an elegant solution, though- anyone can tell you've been murdered if you're killed by a sniper rifle, but poison doesn't leave traces on the body, and the victim generally won't realize until it's too late. It's cliche, but at least in my country, it's not like anyone would get an autopsy anyway.
Most importantly, it feels like you've beaten the person intelectually. You can just poison them without them noticing it, say good night with a smile and be confident they'll be dead by tomorrow. Well, it also depends on how potent the poison is and how long it takes for it to get working, though.