"Обычный reference" с точки зрения CLR — это ссылка на другую сборку
А "Web reference" с точки зрения CLR вообще не существует. Когда ты делаешь "Web reference", студия включает в твой проект класс-обертку, сгенерированную по WSDL-описанию веб-сервиса. Так что если хочешь обеспечить при динамической компиляции доступ к произвольному веб-сервису, придется тебе делать примерно то же самое — генерить сборку с классом-оберткой и давать обычный reference на нее.
Если тебе нужно обеспечить доступ не к произвольным сервисам, а к конкретному списку, тогда создай сборку, в котороую положи эти обертки и давай обычный reference на эту сборку.