Что касается первого вопроса, то именно так, как они решили, что это должно быть, то есть вы не можете сделать:
T operator[]( const X &, size_t );
как внешняя функция.
И да, вы можете вернуть ссылку на приватного участника, неконстантно, если вы разрешите своим пользователям писать туда, в противном случае неконстантно.
В вашем примере данные статичны, что не имеет смысла, если они являются источником того, что они возвращают.