digitalWriteFast has the same limitations I mentioned above since there is only so much you can with the limitations of the AVR instruction set and the current API semantics.
i.e. digitalWriteFast will only offer an increased speed and atomicity if the pin and the value parameters are both constants.
There are some issues with using digitalWriteFast.
The main one being if the value parameter is not a constant, it does not call digitalWrite() which means it does a non atomic register update operation so it can and will corrupt the register if interrupts are being used and the ISR code is also modifying the same register.
So while it can offer faster operations when using a constant pin number and a variable value parameter, it should not be used if there is an ISR that modifies the same register as there will be register corruption.
digitalWriteFast also does not use the Arduino board variant pin mapping tables as it hard codes its own pin mappings. While hard coding pin mappings is definitely faster than looking them up, it can end up doing incorrect pin mappings if you are not using same board type that code assumed.
A better solution is to re-write the digital i/o code so that it is smarter and faster.
This is what Paul Stroffegen did in his Teensy AVR core.
If you use a Teensy AVR board which uses his Teensy AVR core, then you get the much faster code automatically when using the standard digital i/o API functions like digitalWrite() with no need to use the digitalWriteFast hack.
Since he implemented it in the core, you also don't have the risk of incorrect pin mappings and you will never have a case of non atomic register updates.
Paul offered this code to the Arduino.cc developers many years ago, but unfortunately they didn't want to use it and in fact rejected the offer several times.
One thing that I always thought was really dumb in the digitalWriteFast code is that they didn't create macros to remap the digital i/o functions to the faster functions.
This is really really dumb, since, as is, you have to modify your code to use it.
With just a few simply macros, you could include the header and make not other changes to your code.
And to revert simply comment out the include of the header.
--- bill