<p>From the <a href="http://marlinfw.org/docs/gcode/M502.html" rel="nofollow noreferrer"><code>M502</code> documentation page</a> can be read that <code>M502</code>:</p>

<blockquote>
  <p>Reset all configurable settings to their factory defaults.</p>
</blockquote>

<p><sub><em>Please note that this phrasing from the manual has been used in the question title!</em></sub></p>

<blockquote>
  <p>To also reset settings in EEPROM, follow with M500.</p>
</blockquote>

<p>Note that:</p>

<blockquote>
  <p>This command can be used even if EEPROM_SETTINGS is disabled.</p>
</blockquote>

<p>The question is what is the definition of <em>"all configurable settings"</em>?</p>

<p>Are these the settings that are displayed with <a href="http://marlinfw.org/docs/gcode/M503.html" rel="nofollow noreferrer"><code>M503</code></a>, or are there hidden settings?</p>

What Marlin does when
```
M502
```
is called is defined in the
```
configuration_store.cpp
```
file.
It resets:
Max acceleration
Steps per mm
Max feedrate / speed
Min segment time
Acceleration (Normal, Retract, Travel)
Min feedrate
Min travel feedrate
Jerk settings
Junction deviation
Home and SCARA offsets
Hot end offsets
Filament runout sensor distance
Tool change parameters (Swap length, extra prime, prime speed, retract speed, Park 
positions, Z raise)
Backlash correction distances and smoothing parameters
Extensible UI
Magnetic parking extruder settings
ABL (fade height, stored points, nozzle offset, servo angles
Delta calibration data (Height, Endstop offset, radius, rod length, segments per 
second, calibration radius, trim angle)
Dual / triple endstop adjustments
Preheat parameters
PID parameters
self-defined thermistors
LCD contrast
Power loss recovery
Firmware retraction
Filament diameter (for volumetric extrusion)
Endstops (if disabled)
Stepper drivers
Linear advance parameters
Motor currents (digipot)
CNC coordinate system (if selected)
Skew correction parameters
Advance pause filament change lengths