Я не могу подробно ответить за WCF, но счетчики производительности в целом работают, постоянно записывая значения в некоторую разделяемую память. Таким образом, WCF всегда записывает значения в отображенный в память файл или в раздел общего доступа в dll.
Когда приложение perfmon хочет отобразить их, оно загружает общую память и читает из нее. Это не удар по производительности, особенно.
Проблема возникает, когда вы хотите что-то сделать с этими данными счетчика, например записать их в файл или обновить график. Вот тогда производительность начинает быть заметной. Это удваивается, если читатель работает по сети.