I figured this one out a while back, but wasn't sure if the complexity worth the effort. It may be more optimal to just create a mesh with sub-meshes and apply a different materials to them - not good for performance, but an optimal solution for character models, which also happen not to have tiling in most cases, so regular texture atlasing is a viable solution for performance optimization. Plus, on modern PCs, and I think also Playstation 4, Xbox One there are texture arrays, which could be used instead of my texture atlasing method. But I still decided to explore tillable Atlasing and also used this technique in creating Volume-Baked-Shadows.
[Update: 01.05.2018]
For one of my shaders i provided additional texture index and used edge detection to mask a triangle seam with texture from the second index.
I'm also working on a script which automatically converts object to atlased (adds it's textures to atlases) and rebuilds the mesh (creates a copy not to destroy the original). It took a damn long effort to make it smart and user friendly. It still needs testing for every possible scenario, but so far, at least theoretically, it would seem that its possible to make it fully automated - just attaching Playtime Painter Component and hitting "Convert". Benefits are huge - all your geometry in a single mesh with a single Material, processed by a single Draw Call. Adding that to new Texture Packaging solution, where Ambient, Gloss and Normal can be packaged into a single texture, its possible to have a really awesome, complex and at the same time mobile friendly scene.
In video please jump to 4:07. Was unable to embed with timeCode.