I'm not sure how generally applicable this is, but I had the same problem and found that this reddit comment solved it for me (on Android Lollikat, which is cm11):
http://www.reddit.com/r/cyanogenmod/comments/2m9t61/how_do_i_remount_system_rw_on_cm11_m12/
Basically, I had to remount by explicitly using /system/bin/mount -o ...
rather than just mount -o ...
. I'm guessing that at some point the version in /system/xbin started taking priority and for some reason that version fails silently. (I say "at some point" because link2sd didn't start complaining about RO until recently.) It looks like it should be possible to edit the PATH to fix this so as to not have to use the command line every time I or an app needs to do this. I'm not sure how yet, though.
FWIW, here's the actual script for my device (s5360 on cm11 / LolliKat). It runs from anywhere but I ended up storing it in /system/xbin so it's globally available to shells.
#!/system/bin/sh
echo "Remounting /system as RW (read/write)..."
/system/bin/mount -o remount,rw /system
mount | grep yaff
That last line is just to give quick feedback as to whether it actually worked or not (since my internal partitions are yaff2). The line before it could be made more explicit as any one of these, but on my device this isn't necessary:
/system/bin/mount -o remount,rw /system /system
/system/bin/mount -o remount,rw /system /system
/system/bin/mount -o remount,rw /dev/block/mtdblock8 /system
/system/bin/mount -o remount,rw -t yaffs2 /dev/block/mtdblock8 /system