Making Ranks Public has nothing to do with visibility.
If enabled, the custom post type “Ranks” will have an archive and you will be able to display all available ranks on your website. If disabled, ranks will not have an archive and with that, users will not see all ranks.
Note that I am talking about the post type archive and not what rank a user has.
If you visit the myCRED website, I have enabled Ranks to be public, which means that you can view all ranks you can have on our website by visiting https://mycred.me/members/ranks/.
Now, myCRED can either show each users rank only to the user (and admin) or to other members. myCRED will NOT show users ranks to visitors (non members). You would need to add this yourself by hooking into BuddyPress or WordPress and show the rank in the appropriate place.
To show a users rank you simply use the mycred_get_users_rank function which by default shows the users rank name but you can also use it to show the rank.
Here is an example of inserting a users rank in their BuddyPress profile header:
add_action( 'bp_before_member_header_meta', 'show_users_rank_in_header' );
function show_users_rank_in_header() {
$user_id = bp_displayed_user_id();
if ( mycred_exclude_user( $user_id ) ) return;
$rank_name = mycred_get_users_rank( $user_id );
echo 'Rank: ' . $rank_name;
}