В общем, ларчик просто открывался. Встроенный мембершип все равно лезет в таблицу роль-юзер, а аккаунт доступен по Profile.UserName и Role.UserInRole().
Вот одна из реализаций, которую я протестировал. Создаем штатными способами все роли + роль, которую присвоим при первом захождении АД юзера на сайт. Я назвал ее guest. На мастер странице добавил код, который присваивает зашедшему юзеру роль guest.
Roles.AddUsersToRole(Profile.UserName, "guest");
При этом создаются записи в таблицах "пользователи" и "пользователь-роль". Т.о. мы получаем внешнего пользователя к себе в базу и его связь с ролью. Остается только назначить роль с нужным уровнем доступа.
Все.