Pertanyaannya terbalik.
Anda tidak mencari alasan untuk membuat suatu fungsi non-publik. Ini adalah pola pikir yang salah untuk memulai (menurut saya). Alasannya harus sebaliknya.
Dengan kata lain - jangan tanya "mengapa saya membuatnya pribadi?". Tanyakan: "mengapa saya harus mempublikasikannya?"
Jika ragu, jangan ungkapkan. Ini seperti pisau cukur Ockham - jangan gandakan hak yang melebihi kebutuhan.
EDIT: Mengatasi kontra-argumen yang diajukan oleh @Telastyn dalam komentar (untuk menghindari diskusi panjang di sana):
Saya sudah mendengarnya dari waktu ke waktu, dan bahkan mendukungnya untuk beberapa waktu, tetapi dalam pengalaman saya, banyak hal cenderung terlalu pribadi.
Ya, kadang-kadang menyakitkan jika kelas terbuka untuk warisan, tetapi Anda tidak dapat mengganti beberapa metode pribadi (yang perilakunya ingin Anda ubah).
Tetapi protected
akan cukup - dan itu masih non-publik.
Ini mengarah ke banyak duplikasi kode dan overhead untuk mendapatkan "hal-hal yang tidak boleh publik" namun diakses secara tidak langsung.
Jika menjadi bermasalah, maka cukup buat publik! Ada kebutuhan yang saya bicarakan :)
Maksud saya adalah bahwa Anda tidak harus melakukannya untuk berjaga-jaga (YAGNI dan semuanya).
Perhatikan bahwa selalu membuat fungsi pribadi menjadi publik lebih mudah daripada menariknya kembali ke privasi. Yang terakhir kemungkinan akan memecahkan kode yang ada.