В MSDN была статья (теперь в ASP.NET http://www.asp.net/downloads/sandbox/table-profile-provider-samples)), в которой обсуждается, как сделать поставщика таблицы профилей. Идея состоит в том, чтобы хранить данные профиля в таблице вместо строки, упрощая запрос только с SQL.
Более подробно об этом: SQL Server 2005/2008 обеспечивает поддержку для получения данных с помощью служб и кода CLR. Вы могли бы получить доступ к данным профиля через API вместо базовых таблиц напрямую.
Что касается пункта # 2, вы можете установить значения по умолчанию для свойств, и, хотя это не приведет к немедленному обновлению других профилей, профиль будет обновляться при следующем доступе к нему.