Yep, this is per normal.
PHP's cwd comes from the executing script, not from the script requesting an inclusion. As you start stacking inclusions, than the filepaths no longer match up.
The answer is to always use relative from THIS script (the one calling the include). I don't recommend absolute paths as if you distribute the software that creates a little bit of a mess unless you want to precalculate everything or ask for explicit configurations, and I don't recommend pulling from $_SERVER since that then locks you into a web environment. So to include a path from above *this* script would be a simple:
require_once __DIR__ . '/../home.php';
Now if this script is included into /index.php for example and called with /subdir/thatscript.php, than /subdir/thatscript.php will resolve /subdir/../home.php as the path to include.
Simply prefixing with __DIR__ and working relative from this file's path eliminates the concern with inclusion depths and where the inclusion is called.