Would it be easy possible to not let moderators see these fields?
If you don't want moderators to see it either then you can use the following with CB Conditional instead.
Integrations > CB Conditional
Display: Field conditional show
Field: Custom > Users
User: Viewing User
Operator: Is
Value: [user_id]
On: Profile View and Userlists View (unselect all the others)
That should condition it so it only displays if the user viewing the profile is the profile owner.
And one thing, to show it private in profile I have to set it to show in profile an then in profile editing it is showing the open eye, that makes you believe, everybody can see it. Am I wrong in somehow?
The icon just indicates it's visible on profile. It does not indicate who can see it. You can also turn those icons off per-field using Parameters > Layouts settings (field icons at the bottom) or globally in CB > Configuration > General by adjusting the "Field Icons" parameter.