When to use Enig vs HASL vs Silver vs
I think it all comes down to corrosion,  the flatness of the finish and cost.
HASL isn't flat so you can rule this out for fine pitch ICs or BGA, the gold over nickel ENIG is as flat as it gets and the gold surface is the least reactive so won't really corrode and last for years on the shelf. I don't think its any better for the quality of the soldered connection as the gold pretty much vanishes as soon as you solder it.
Ideally we'd always use ENIG but it's expensive so we tend to use the silver finish which offers a good compromise for cost and shelf life, it's also fairly flat so I believe it's suitable for BGA. Our supplier rates it for 12 months shelf life but I've assembled on silver finish PCBs that are at least 3 years old OK.
Mathews comment about dissimilar metals corrosion (galvanic action) is also worth bearing in mind here if your reliant on the fasteners for earthing.
Update
Thought I would just update as I've been reading a bit recently about the reaction of silver immersion with atmospheric sulphur whereby silver sulphide can develop on the PCB and 'creep' across the board. This could be an issue when operating in environments with elevated levels of sulphur and high humidity. See this article. Since writing this answer I've noted that immersion silver finish is no longer a popular choice.