In addition to @Stuart's answer (which is correct), I want to post a second workaround that I found allows me to achieve my desired scenario (PCL assembly testable on Mac OS and Windows).
This workaround relies on Xamarin Studio 4.0.5 (or later) that introduced support for wildcard includes.
Specifically, when compiling on Windows I compile the PCL and add a project reference to it from the test assembly. On Mac OS, I compile the 'PCL' (there's no true PCL support right now) too but I leave it untouched from the test assembly. Instead, I wildcard include all code from the PCL project into the test assembly so I have test+code in the test assembly on OS X.
This requires some MSBuild magic (similar trick used to switch MvvmCross references between Windows and OS X version). Include this .targets file at the top of your projects:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<MvvmCrossPlatform>VS2012</MvvmCrossPlatform>
<PclSupport>true</PclSupport>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<MvvmCrossPlatform>XS-iOS-Mac</MvvmCrossPlatform>
<PclSupport>false</PclSupport>
</PropertyGroup>
</Project>
Then in your unit test .csproj:
<ItemGroup Condition=" '$(PclSupport)' == 'false' ">
<Compile Include="..\RowingInMotion.Mobile.Backend\**\**.cs">
<Link>_Inlined\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>
<Choose>
<When Condition=" '$(PclSupport)' == 'true' ">
<ItemGroup>
<ProjectReference Include="..\RowingInMotion.Mobile.Backend\RowingInMotion.Mobile.Backend.csproj">
<Project>{0B448743-182C-4ADC-8E97-7F9E7EF3A03A}</Project>
<Name>RowingInMotion.Mobile.Backend</Name>
</ProjectReference>
</ItemGroup>
</When>
</Choose>
Note that I had to use the Choose construct to make the ProjectReference conditional, it seems just using a Condition on its item group doesn't make Visual Studio and Xamarin Studio load/ignore the project reference. It also seems that Xamarin Studio doesn't properly expand the %(RecursiveDir)...
statements so the files retain their ugly filenames (not that I'd care as long as they are hidden in their _Inlined folder).