This can indeed be a serious problem when using Mathematica. It's very convenient that it has an implementation of e.g. the Girvan–Newman algorithm, but without the documentation at least confirming that this is indeed what it uses, without significant modifications, I cannot use it in a publication. After all, we're only guessing that Method -> "Centrality" is a standard Girvan–Newman procedure ...
FindGraphCommunities is quite different from functions like e.g. Eigenvectors because there is no simple way to verify its result. I don't need to know how Mathematica computed some eigenvectors to use them. All I need to know is: 1. what is an eigenvector 2. that the result is correct. Point (1) is easy because the definition is standard. Point (2) is also easy: eigenvectors are much simpler to verify than to compute. FindGraphCommunities fails on both points: there's no confirmation of what it does and there's no easy way to verify that the result is correct.
IGraph/M, a Mathematica interface for igraph may come in handy here. It has implementations of many community detection algorithms with references for each, and it is well integrated into Mathematica. It works with Mathematica's Graph datastructure.

While the IGraph/M documentation is a bit sparse (due to lack of time), you'll find a lot more information on each implemented method in the igraph reference manual.
This takes care of point (1). You know exactly what each function is supposed to do. For (2), i.e. correctness, you still have to trust the implementation. While it's open source, it is not particularly realistic to hand-verify their implementation.
What's more realistic is to ask Wolfram Support for references on what each method does. If they confirm that Method -> "Centrality" is indeed Girvan–Newman without modifications, then you now have two independent implementations for checking:
g = ExampleData[{"NetworkGraph", "DolphinSocialNetwork"}];
SortBy[Length]@IGCommunitiesEdgeBetweenness[g]["Communities"] ===
SortBy[Length]@FindGraphCommunities[g, Method -> "Centrality"]
(* True *)
Having two systems complementing each other is always better than having just one, regardless of whether they're open source or closed.
Of course this won't work in every case because many of these algorithms use stochastic methods ...
BTW IGraph/M will return more information about the community structure than FindGraphCommunities. Here's for example the dendrogram:
DendrogramPlot[
IGCommunitiesEdgeBetweenness[g]["HierarchicalClusters"],
LeafLabels -> (Rotate[#, Pi/2] &), Axes -> {False, True}]

It shows you the edge betweenness values where the network is split into components.
goog = Import["https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=\mathematica%20findgraphcommunities", "JSON"]; Hyperlink["url"] /. ("results" /. ("responseData" /. goog)):) – kglr Aug 26 '14 at 14:11