Спасибо, что подробно ответили на все мои вопросы. Со вторым я понял что претензия была предъявлена зря, а вот с первой нет.
Смотрите вот так у вас происходит генерация подписи при системе Клиент-Сервер:
sig = md5(uid + params + private_key)
А так при Сервер-Сервер:
sig = md5(params + secret_key)
При этом secret_key хранится только на сервере и знаю его только я и Вы, а вот private_key лежит свободно и получается, что любой сможет сгенерировать верный sig если человек использует систему Клиент-Сервер. Поправьте меня если я где-то ошибся.
Хабраинтервью с Алексеем Тереховым (api.mail.ru)