The difference is, having an external library allows it to be versioned with breaking changes if necessary, without breaking consumers.