Ответ 1
friend
в VB.Net совпадает с internal
в С#, это означает, что к нему можно получить доступ в любом месте одной и той же сборки, но не из других сборок.
Я думаю, что это разумный дефолт, так как я бы сказал, что обычно одна сборка не должна использовать другие элементы графического интерфейса сборки (если это не библиотека классов или аналогичная, которая построена для этой цели).