Чёто тебя в странную степь понесло, ну да ладно.
1) Во первых (на всякий случай) в файле можно объявлять сколько угодно шаблонов, а не только один (этим SS принципиально отличается от того же Jade)
{template foo()}
...
{/}
{template bar()}
...
{/}
/// Можем использовать неймспейсы
{template some.foo.bar()}
...
{/}
2) Во вторых (тоже на всякий случай) в файл шаблона можно подключать другие файлы
{include 'myFile.ss'}
{include 'tpls/*.ss'}
/// Можно даже так
{eval}
{forEach ['foo.ss', 'bar.ss'] => url}
{include url}
{/}
{/}
{template foo()}
...
{/}
А в JS вызывать один главный файл.
3) Как ты хочешь тоже можно, но я опишу самый лучший кейз - это использование наследования. Чтобы понять наследование в SS, то нужно просто привыкнуть к той мысле, что шаблон - это класс (в вики этому посвящён целый раздел).
Я всегда для начала завожу абстрактный шаблон, от которого потом будут наследоваться другие и определяют там базис и базисные методы.
base.ss
{template base(@params)}
{doctype}
<html>
<head>
{block head}
/// Подключим базовые стили и скрипты
{block script}
{script js src = base.js}{/}
{/}
{block style}
{link css}base.css{/}
{/}
{/block}
</head>
<body>
{block body}
{/block}
</body>
</html>
{/template}
Далее создают, например,
profile.ss
{include 'base.ss'}
/// Наследуемся от базового шаблона и доопределяем / переопределяем структуру (это блоки, прототипы. константы и т.д.)
{template profile(params) extends base}
{block script}
{super}
{script js src = profile.js}{/}
{/}
{block style}
{super}
{link css}profile.css{/}
{/}
{block body}
<div class="foo">
...
</div>
{/}
{/template}
И т.д. уровень наследования не ограничен и не нужно боятся его использовать, т.к. на скорость конечно шаблона это вообще никак не повлияет.
Теперь про термины в наследовании:
1) Блоки (те, что я использовал в примере) - это как свойства класса, которые можно переопределить или доопределить в дочернем классе.
2) Константы и входные параметры - это свойства, которые можно также изменять при наследовании;
3) Прототипы - это протектед методы класса;
4) Вызываемые блоки - это публичные методы класса.
PS: В примере я использовал параметр с @ - это сахар для with биндинга,
https://github.com/kobezzza/Snakeskin/wiki/with