1) Не забудьте, что все эти 10к файлов НЕ должны лежать в одной и той же директории, т.к. это сказывается на производительности а при превышении N лимита (влом гуглить циферку) всё наеб... поломается, короче. Я бы брал crc32 (самый быстрый алгоритм хеширования) от идентификатора, например "h87dg283" и складывал соответственно в "~/articles/h8/7d/g283.json".
2) При подобном хранилище поиск может быть осуществлён лишь по идентификатору записи. Т.е. что-то вроде "select * from articles where id = ?". Любые дальнейшие улучшения требуют больших накладных ресурсов. А реализация чего-то вроде поиска по записям будет физически невозможна (возможно, кончено, но писать такую шнягу придётся очень долго, а что-то вроде Sphinx к такому не прикрутить).
В остальном не вижу никаких особых проблем.