Olá André,
na verdade a resposta da questão 1 acaba respondendo a 2, então vamos lá:
1 - o WCF é um serviço, então, ele tem que estar hospedado em algum lugar. Como o curso foi voltado para webservices, então o mais sensato é que ele seja hospedado em um servidor IIS e se gere os endpoints dele para acesso pelo navegador mesmo, assim como foi feito no curso, com a diferença que o projeto console não seria necessário. Para isso, o tipo de projeto a ser utilizado se não me engano seria o "WCF Service Application" e não o library como usamos no curso. A porta seria especificada no seu IIS mesmo.
3 - Adicionando ?wsdl ao fim da url do serviço, é exibido o documento wsdl do serviço, que nada mais é do que um XML contento todas as informações do serviço, como métodos disponíveis e entidades (classes com a notação [DataContract]) que podem ser usadas. Quando na aplicação windows forms ele clicou no botão discover, o que aconteceu foi justamente isso: aquela janela do visual studio procurou o endpoint do serviço, pegou o wsdl dele e conseguiu ver todos os métodos e entidades que aquele serviço expunha.
4 - O WCF é um meio de se fazer o serviço, no entanto, como ele será utilizado, deve ser definido pela necessidade do projeto. SOAP e REST são tipos de webservices que usam meios de comunicação diferentes. No SOAP, a mensagem deve ser envelopada e transmitida, acho que sempre por XML, enquanto que no REST, toda a comunicação é feita pelo protocolo HTTP e usando os verbos HTTP tais como GET (busca informações), PUT (atualiza informações), DELETE (deleta informações) e POST (cria informações).
Espero que eu não tenha sido muito confuso e que isso possa te ajudar.