Вероятно, удобнее всего (если я правильно понял, чего вы пытаетесь добиться) вам будет использовать конструкторы функций:
var App = function(data){
this.data = data;
this.method = function(){
return this.data;
};
};
var addNews = new App({markdown:'something'});
console.log(addNews.method());
У созданных конструктором (с ключевым словом new) объектов свои собственные скоупы и так далее - можно будет для разных текстовых создать несколько обособленных модулей обработки этого вашего маркдауна. Это гораздо удобнее, чем вызывать каждый раз функцию, возвращающую объект с ссылками на методы, как делаете вы.
Запись в jQuery.fn.markdown.messages лучше сделать вообще отдельно от инициализации конкретных элементов..
В ваших примерах первый, несомненно, "красивее". Второй не работает, возможно, потому, что скрипт подключен до инициализации DOM. Вызов функций-инициализаторов, использующих элементы DOM, логично выполнять из функций, висящих обработчиками события document.ready:
jQuery(function($){
$("#target-editor-with-custom-language").markdown({language:'fr'});
});