Para começar, você vai querer que todas as suas colunas sejam
nvarchar
. Isso resolverá seus problemas de armazenamento. Quanto à classificação e filtragem, os agrupamentos se tornam importantes como você diz. Dependendo do que você está fazendo com os dados e quantas colunas você precisa usar para filtrar e classificar e como você está fazendo as operações, uma maneira de fazer isso é com sql dinâmico. Você pode fazer algo como
declare @collation sysname = 'Latin1_General_CI_AS'
declare @cmd nvarchar(max)
set @cmd = 'select * from person order by last_name collate ' + @collation
exec sp_executesql @cmd
Essa não é uma ótima solução, mas funciona. Você também pode lançar o agrupamento após qualquer campo em uma exibição, então, como você mencionou, essa é uma opção. Algo assim, e então você pode consultá-lo sem precisar especificar agrupamentos.
create view v_Person_RU as
select first_name collate Cyrillic_General_CI_AI, last_name collate Cyrillic_General_CI_AI...
create view v_Person_AR as
select first_name collate Arabic_CI_AI, last_name collate Arabic_CI_AI...
Então você pode usar apenas escolher a visualização certa para usar para consulta.