Это не обязательно. Я бы даже не рекомендовал делать первый метод, так как он просто избыточен и добавляет сложности. Тильда означает, что она уже связана с корнем приложения - ResolveUrl
просто меняет ее на относительную к странице или пользовательскому контролю, с которого вы ее вызываете. В любом случае, он все равно будет загружен.
Второй способ предпочтителен в качестве наилучшей практики, которая поможет предотвратить относительные структурные изменения в вашем проекте.
Еще лучше было бы сделать строку пути ресурсом или, по крайней мере, константой, чтобы избавиться от магических строк и вообще избежать неожиданностей.