Taking each of your points in turn
The benefits of Behavior Driven Development (BDD) seem to be that
non-technical stakeholders are more easily included in the writing of
I'd say that the benefits are to define a common language on both sides.
Stakeholders define the story in terms of: As a... I want... so that... which can be readily matched to a unit test in the form: Given... When... Then...
Some frameworks even support dumping the unit test output so they can be matched directly to the stories to prove compliance.
In an open-source project, most stakeholders seem to have a technical
background, and should thus be able to understand the tests
themselves, without a BDD proxy.
While this may be true, there may be various areas of the system which some parties aren't au fait with. One of the real benefits of BDD is that you don't have to understand the technical aspects to understand the requirement as they share a common language.
Is this reasoning correct? Which are the advantages of using BDD in an
open-source software project?
As outlined above: due to the common language, the requirements can be shown to match the tests so it easier to determine how compliant the system is.
It is of course possible to do this without BDD. The Given... When... Then... pattern is pretty common within the TDD community.