Что такое {}.prototype?
{}.prototype, в общем случае, равно undefined и смысла в нём мало. (не путать с Object.prototype)
Покажите, где вы такое видели.
Не правильно. Во-первых, torbasow не прав, {}.prototype — не SyntaxError. Такая ошибка вызывается из-за того, что интерпритатор ставит после законченной конструкции {} точку с запятой и получается следующее:
{};.prototype что и выдает такой результат.

Если же написать так:
var o = {}; o.prototype;
то, как уже было замечено, это вернет нам undefined.

Далее, по поводу присваивания
user = {}.prototype = root
видимо вы не в курсе, что операция присваивания имеет приоритет справа налево, то есть сперва выполняется правый операнд, затем тот, что левее и так далее, пока дело не дойдет до самого левого. Пример:
var3 = 10; var var1 = var2 = (var3 + 1); console.log('1: '+var1); console.log('2: '+var2);
выведет
1: 11
2: 11