I'm really not sure what the difference is; in the end, the Presenter ends up knowing about the "service".
I would hardly call that article random; it happens to be one of the earliest documents on the subject, written by Mike Potel of Taligent. To quote Wikipedia:
The model-view-presenter software pattern originated in the early 1990s at Taligent, a joint venture of Apple, IBM, and Hewlett-Packard.[2] MVP is the underlying programming model for application development in Taligent's C++-based CommonPoint environment. The pattern was later migrated by Taligent to Java and popularized in a paper by Taligent CTO Mike Potel.[3]
And I'm not dogmatically defending it, I'm simply saying that, thus far, I haven't found anything as clean and well defined.
I certainly wouldn't claim to be the universal source of truth on MVP (or anything else actually) but I do know that I have implemented Mike Potel's "pattern" in some pretty big projects, for some very satisfied clients.
Other "versions"
I have looked at most of the "modern" versions that are around on the web and, personally, find them somewhat confusing to implement - possibly due to the different definitions used for the word "Presenter" and the uses to which that concept is put.
I have found examples where there seems to be mutual references between a Presenter and an Interactor. Some texts state that business logic should reside in the Presenter. Viper would place the business logic in the Interactor, placing view logic in the Presenter. And lots more inconsistencies in vocabulary and functionality.
In all of these variants, not one mention of the Model, its encapsulation and testability. Which is where my design, based on Mike Potel's, comes in.
If I may, here's a slide from my upcoming presentation:
As I have mentioned before,
all business logic resides in the Model, including the concept of a Selection (for lists models) and a CommandSet, which contains discrete actions that can be executed against the subject of the Model.
In a single object presentation, PropertyInteractors are "bindings" between a property of the Model's subject and a UI control; when the property is changed, the binding is notified and it, in turn, notifies the UI control. The control is totally unaware of the overall subject type, in fact, only knowing that it has to display a representation of a value. It is the PropertyInteractor's job to translate the value type into (e.g. a string) and to validate and translate the string from the control into an appropriate type for the value of the property. These PropertyInteractors are tiny objects that do this one job, nothing more; all they know is the name of the property and the subject, just enough to allow it to get/set the value.
Likewise CommandInteractors are bindings between a visual control like a button or a menu item. When a Command is enabled or disabled by the business logic in the Model, the binding notifies the control and either enables or disables it. The binding also acts as a target for the control's "action" and simply calls execute() on the associated Command; the binding only knows the name of the Command and the Model that contains it.
The box marked "Other Interactors" includes such things as: a ListViewDataSourceInteractor, a ListViewDelegateInteractor and a ListModelCommandSetInteractor (which is responsible for updating a ListView before, during or after a Command's execution), etc.
Yes, I use the UIViewController class as a basis for most complex ViewPresenters, mainly because it already holds a reference to a View, but I also implement the concept of Presenter, independent of UIViewController, to wrap a UITableViewCell, thus removing business logic from an, otherwise, totally visual class.
Why do I stick with this pattern? Because it is simple to explain to a development team and, once the framework is written, implementing it in a domain and UI specific way is really simple and lightweight.
My clients usually start by writing the business model, without a single UI control in sight, and test it exhaustively, including every possible combination of Selection and enabled/disabled Commands.
If they don't already have the MVP framework, then most of that can be written in generic terms, only leaning towards a particular UI framework from the Interactors outwards.
I believe there used to be an advert that said something like "when you've tried the rest, settle on the best".

That's not dogmatism, that's simply 25+ years of experience 
P.S. I love a good discussion and I teach my clients to expect to argue back and forth to find the best solution; too many bad designs have resulted from a client accepting everything the consultant says, without feeling that they can argue back.