Ну т.е. программа через shared memory передает области трея класс, который представляет иконку и та рисует её по классу?
Не через shared memory, а через BMessage. Чтобы стать репликантом, BView должен уметь архивировать сам себя в BMessage и разархивироваться из BMessage до работоспособного состояния. Контейнер, который получает репликант, имеет соответствующий тип, BShelf