Процесса может не быть а группа процессов может существовать.
 в том то и дело что если задать не существующий id процесса... функция возвратит -1... В ином случае отдает" папу", т.е. >-1. Группа может существовать. И что? Если процесса нет то -1, есть - больше -1. 
Каким образом функция может возвратить "папу" не существующего процесса????
К примеру если вы убьете главный поток
 и что? Он поднимется по иерархии в верх. А если убить самую верхнюю "шапку" ... по идее система ляжет и тогда не до поиска процесса.
К сожалению: 
 тут кто-то на косячил, а признаться не захотел
 считаю не верным суждением. Ошибки не вижу. Функция возвращает то что и описано.
п.с.
почитал я ваши ссылки... Из пустого... Это мне ясно и до ваших ссылок. Ответ не дан.
Другое дело - каким образом подтвердить что это необходимый процесс... Но этого в топике не требуется.
только заметил: 
он же командная строка в окошке
 улыбнуло.. Как ребёнку конфетку 

))))