Hahaha :)
I am not sure if we could change the quilt of a page dynamically, but you mentioned that page initialization will let you change the quilt, thats great. You can add the code which triggers this action in the page initialization tab itself, what is stopping you?
Code to check the access/ role for the users could be something like this:
Create a macro to check the user roles, named access.check.macro
<#assign change_quilt = false />
<#attempt>
<#list restadmin("/users/id/${user.id?c}/roles").roles.role as role> <#-- REST call to get the user's roles -->
<#if role.name?? && (role.name == "REQUIRED_ROLE_1") || role.name?? && (role.name == "REQUIRED_ROLE_2") >
<#assign change_quilt = true />
</#if>
</#list>
<#recover>
<#assign change_quilt = false />
</#attempt>
In the page initialization tab, you could add your code as:
<#include "access.check.macro.ftl"> // include the macro in the page initialization tab, so the users role is checked on the page load.
<#if user.registered>
<#if change_quilt>
<#if page.name == "CommunityPage" && http.request.url?index_of("/t5/") lt 0>
//Display the other quilt
</#if>
</#if>
</#if>
I hope this helps.