Запрет есть, но он действует со стороны международных организаций, а не со стороны России.
Мировое судоходство жёстко регламентируется. Есть весьма строгие правила относительного того, как именно могут плавать суда и куда именно они могут - или не могут - заходить. С точки зрения международного права Крым - территория Украины. Нравится это нам или нет. Поэтому заходить в крымские порты суда могут только с разрешения украинских властей, а не российских. И нарушение этого правила может иметь очень серьёзные последствия для судовладельцев - они лишатся международных лицензий и потеряют возможность заходить в любые ДРУГИЕ порты стран, входящих в Международную морскую организацию (а это практически все страны мира, имеющие выход к морю и занимающиеся судоходством), или получать помощь от Международной ассоциации судовладельцев, Международной палаты судоходства, крупных страховых компаний.
Естественно, в таких условиях нужно быть врагом самому себе, чтоб нарываться на международные санкции.
Сходные проблемы будут и для судов, приписанных к крымским портам. С точки зрения, опять же, международного права у этих судов должны быть украинские документы для того, чтоб заходить в порты других стран или для того, чтоб получать международно признанную страховку или аналогичные услуги.
И ещё раз, чтоб не было недопонимания: это международная практика и международное право. Можно как угодно сильно любить или ненавидеть Путина, можно горячо ободрять присоединение Крыма или, наоборот, горячо этим возмущаться, но это всё тут у нас, промеж себя. А для международного права Крым принадлежит Украине.
И другого глобуса у нас и для нас пока что нет...