1.) Если службы находятся в одной коробке, используйте именованные каналы, если у вас нет веских причин не общаться друг с другом. В то время как WCF не заботится о том, что вы делаете, пока адрес, привязка и контракт совпадают (видите, что я там делал?), .NET будет, когда дело доходит до создания сетевых подключений. Чем меньше вы используете, тем лучше. (см. http://msdn.microsoft.com/en-us/library/fb6y0fyc.aspx для более подробной информации)
2.) Как указано в # 1, если они говорят в одном окне, используйте именованные каналы, если нет веской причины не делать этого.
3.) Можете ли вы рассказать немного подробнее о том, что вы подразумеваете под этим или что вы планируете делать? Многое из этого построено для вас, поэтому, если вы знакомы с реализацией асинхронных методов и использованием асинхронных обратных вызовов, краткий ответ - да, он отличается от синхронного вызова операции, но этого и следовало ожидать. Или вы имеете в виду IsOneWay = true? В этом случае механизм вызова такой же, но может быть несколько других ошибок (например, сбоев)
4.) Именованные каналы в одном окне, BasicHttp в противном случае (если вам не нужны какие-либо дополнительные функции из WS).